Django 3: Невозможно сгенерировать динамическое представление объекта
Я успешно создал ожидаемую структуру для моей модели, и в переменных ошибок я вижу, что объект DB был возвращен, но я не могу разрешить страницу. Я получаю ошибку "TypeError at /ticket-edit/2 - init() got an unexpected keyword argument 'instance'" - я неправильно ссылаюсь на объект? Я хочу использовать существующую форму TicketForm, но заполнить результат значениями полей из URL.
В ошибке локальная переменная показывает, что был получен ожидаемый билет:
Variable: Value
- aTicketID: '2'
- context: {}
- obj: <Ticket: 2 2021-10-06 Название билета Описание билета> запрос
- <WSGIRequest: GET '/ticket-edit/2'> .
- Exception Location: /views.py, строка 118, in ticket_edit .
- строка 118: updateform=TicketForm(instance=obj)
Urls.py (я использую URL вместо пути для генерации ID-ссылки)
urlpatterns = [
url(r'^ticket-edit/(?P<aTicketID>\d+)', views.ticket_edit, name='ticket-edit')
]
Models.py
class Ticket(models.Model):
#---Base Meta-----------------------------------------
appTicketID = models.AutoField(primary_key=True)
date_submitted = models.DateTimeField(
max_length=20,
auto_now_add=True)
issue_title = models.CharField(max_length=90)
issue_description = models.CharField(max_length=1000)
def __str__(self):
return (f"{self.appTicketID} "
f"{self.date_submitted} "
f"{self.issue_title} "
f"{self.issue_description} "
def get_absolute_url(self):
return reverse_lazy('ticket-edit', kwargs={'aTicketID': self.appTicketID}
Views.py
@login_required
def ticket_edit(request, aTicketID):
context = {}
obj=Ticket.objects.get(appTicketID=aTicketID)
updateform=TicketForm(instance=obj)
if aTicketID == None:
aTicketID = 1
aticket = Ticket.objects.filter(appTicketID=aTicketID)
print('\n-----------------------------------------------------------------')
print('TicketFiltered: ', aticket)
print('-----------------------------------------------------------------\n')
context = {
"has_error": False,
"updateform": updateform,
"aticket": aticket
}
return render(request,'appname/ticket-edit.html', context)