Django Model.create не сохранится в базе данных - PullRequest
0 голосов
/ 11 мая 2019

Я пытаюсь создать экземпляр модели (транзакции) из метода post представления, но он не сохраняется в базе данных, но, к моему удивлению, после "создания объекта", а не сохранения, я могу передать его моему контексту и использовать его значения, некоторые из которых генерируются автоматически, но все же не сохраняются: (.

Я попытался увеличить строку, которую tjat создает в первой строке метода, но все еще не работает. (Хотя Django Admin работает)

from django.views import generic
...
from arctic.core.models import Transaction  # Get transaction model

class MyView(generic.DetailView):
    template_name = "temps/page.html"
    model = Application
    context_object_name = "object_name"
    slug_field = 'uuid_id'
    slug_url_kwarg = 'obj_id'

    def dispatch(self, request, *args, **kwargs):
        # Check if object is accepted
        if not self.get_object().accepted or self.get_object().acknowledged:
            return HttpResponseForbidden()

        # Else, continue
        return super().dispatch(request, *args, **kwargs)

    def post(self, request, **kwargs):
        context = {}
        poll_url = "http://test-link.com/"
        trans = Transaction.objects.create(poll_url=poll_url)

Это просто не спасет. PS: я не переопределил ни один из методов моделей

UPDATE
Вот переменные из трассировки, которую я вызвал "


context 
{}  

kwargs  
{'obj_id': UUID('f4228ebf-9b26-4e95-85b1-7570d92458c4')}  

poll_url    
'https://www.test-link.com/'  

request 
<WSGIRequest: POST '/acknowledge-acceptance-and-register/f4228ebf-9b26-4e95-85b1-7570d92458c4/'>  

self    
<arctic.applications.views.MyView object at 0x000002CAA9BB1A58>  

trans
<Transaction: Transaction object (115)>  

Из этого я обнаружил, что инкрементальный первичный ключ по умолчанию pk / id от django продолжает увеличиваться, что означает, что он достигает базы данных, но не сохраняет :(, даже в Django-admin, pk увеличивается, то есть, когда я повторяю этот запрос, он увеличивается на 1, но не сохраняет, но затем добавляет с помощью администратора django, сохраняет с pk или id +2 (пропуская один, как если бы он имел был сохранен)

...