У меня есть модель котировок, в которой в качестве связанного поля указаны цитаты.
class BusinessQuote(models.Model):
id = models.AutoField(primary_key=True)
client = models.ForeignKey(BusinessClient, null=True, on_delete=models.SET_NULL)
site = models.ForeignKey(BusinessSite, null=True, on_delete=models.SET_NULL)
...
и
class BusinessQuoteitem(models.Model):
id = models.AutoField(primary_key=True)
quote = models.ForeignKey(BusinessQuote, null=True, on_delete=models.CASCADE)
job = models.ForeignKey(BusinessJobtask, blank=True, null=True, on_delete=models.SET_NULL)
ordered = models.IntegerField(default=0)
...
Они отображаются в админке в виде строк
class InlineQuoteItems(admin.TabularInline):
model = BusinessQuoteitem
extra = 0
formfield_overrides = { ... }
class QuoteAdmin(admin.ModelAdmin):
list_display = ['id', 'date', 'client', 'site', 'tradename', 'total', 'converted']
list_filter = ['tradename', 'client', ]
inlines = [InlineQuoteItems]
admin.site.register(BusinessQuote,QuoteAdmin)
когда я пытаюсь удалить встроенный элемент, я получаю следующую ошибку:
Exception Type: TypeError
Exception Value: %d format: a number is required, not NoneType
Exception Location: /home/.../business/models.py in __str__, line 237
Строка 237 относится к:
def __str__(self):
return "%d" % (self.id)
Что сбивает с толку, так это то, что это обычно работаетЯ не знаю, что может привести к сбою встроенного удаления.
Я выполняю некоторый JavaScript-код в полях перед отправкой, который суммирует встроенные элементы и обновляет общую сумму счета, но это не так.Не трогайте поля идентификаторов, и как его клиентская сторона, я не вижу его влияния