Django限制某些关键字?

2024-04-18 17:35:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我卷入了这个我无法解决的问题

所以我在Django1.7.7上运行两个应用程序,模型如下

  • 命令。命令
  • order.orderinerary(m2m到表)

  • 行程。行程

  • 行程。照片

这里的问题是,当我在orderinerary中使用指向行程模型的外键时,它就起作用了。 但当外键从照片指向行程模型时,我就犯了这个错误

<class 'itinerary.admin.ItineraryPhotoAdmin'>: (admin.E108) The value of 'list_display[1]' refers to 'itinerary', which is not a callable, an attribute of 'ItineraryPhotoAdmin', or an attribute or method on 'itinerary.Photo'.

我只是不明白为什么两个不同的模型指向同一个模型会给我不同的结果

class Order(GenericModel):
def __str__(self):
    return "%s" %(self.title)

title       = models.CharField(max_length=64)
description = models.TextField(blank=True)
order_number= models.CharField(max_length=64, unique=True, blank=True, default='')
itineraries = models.ManyToManyField('itinerary.Itinerary', through='order.OrderItinerary')

第二种模式

class OrderItinerary(GenericModel):
title       = models.CharField(max_length=64)
description = models.TextField(blank=True)
rating      = models.FloatField(blank=True)
order       = models.ForeignKey('order.Order')
itinerary   = models.ForeignKey('itinerary.Itinerary')

第三种模式

class Itinerary(GenericModel):
uuid        = models.CharField(max_length=128, default=generate_uuid)
title       = models.CharField(max_length=64)
description = models.TextField(blank=True)
price       = models.DecimalField(blank=True, null=True, decimal_places=2, max_digits=5)
total_rating= models.FloatField(default=0)
rating_num  = models.IntegerField(default=0, verbose_name="number of customers rated")

第四种模式

class Photo(GenericModel):
caption     = models.CharField(max_length=254, default='', blank=True)
photo       = models.ImageField(upload_to=generate_photo_name)
itinenary   = models.ForeignKey('itinerary.Itinerary', related_name="itinerary_photo")

Tags: 模型truedefaulttitlemodelsorderlengthmax