Django:模型无法在Admin中正确呈现字段

时间:2018-12-28 16:32:16

标签: django

我知道一个模型可以正确记录数据库中的值,但是在管理面板中不能正确显示它们。

我知道它正确保存了此字段,因为:

1.-我可以在Shell中查询模型并正确查看值。
2.-我正在使用该模型的字段来创建另一个模型,并且该另一个模型可以正确保存并正确显示在管理面板中的字段。

怎么了?

外壳

>>> SizeQuantity.objects.get(pk=9)
<SizeQuantity: variante_125 por cantidad_200>
>>> SizeQuantity.objects.get(pk=9).size
'variante_125'
>>> SizeQuantity.objects.get(pk=9).quantity
'cantidad_200'

我在AdminPanel中看到的内容:

enter image description here

这是我的另一个使用SizeQuantiy中值的模型:

我期望为我的SizeQuantity模型渲染“大小”和“数量”字段:

enter image description here

from .models import Cart, SizeQuantity
# Register your models here.
admin.site.register(Cart)
admin.site.register(SizeQuantity)

models.py

class SizeQuantity(models.Model):
    cart = models.ForeignKey(Cart, on_delete=models.CASCADE)
    product = models.ForeignKey(Product, on_delete=models.CASCADE)
    size = models.CharField(max_length=20, choices=TAMANIOS)
    quantity = models.CharField(max_length=20, choices=CANTIDADES)
    image = models.ImageField(upload_to='images', blank=True, null=True)
    comment = models.CharField(max_length=200, blank=True, null=True, default='')
    uploaded_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return str(self.id) + " - " + str(self.size) + " por " + str(self.quantity)

    @property
    def image_filename(self):
        return self.image.url.split('/')[-1]

2 个答案:

答案 0 :(得分:1)

Django可能无法正确呈现您的字段,因为在字段选择(TAMANIOS CANTIDADES)中未包含提及的值

答案 1 :(得分:1)

您上方的字段(“ variante_125”,“ cantidad_200”)不在您的有效“选择”中。

您可以为大小和数量字段添加任何字符,尽管您不必在CHOICES中写入值。但是您不能使用诸如get_FOO_display之类的选择。在此处检查文档很有帮助(https://docs.djangoproject.com/en/2.1/ref/models/fields/#choices)。

您应该检查具有这些值的TAMANIOS,CANTIDADES选项。