Удаление встроенного элемента не выполняется из-за отсутствия идентификатора - PullRequest
0 голосов
/ 26 января 2019

У меня есть модель котировок, в которой в качестве связанного поля указаны цитаты.

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-код в полях перед отправкой, который суммирует встроенные элементы и обновляет общую сумму счета, но это не так.Не трогайте поля идентификаторов, и как его клиентская сторона, я не вижу его влияния

...