我有company_images
表属于到country_master
,除非country_id为 0 。如果country_id为0,我假设它是“所有位置”。但是因为country_master中不存在0。它不会返回company_images列表中的那些条目的结果。我如何解决它。
请原谅我,如果这是一件简单的事情,因为我是python / django的新手。
Model.py
class CountryMaster(models.Model):
country_id = models.IntegerField(primary_key=True)
country_name = models.CharField(max_length=255)
created_date = models.DateTimeField(auto_now_add=True)
updated_date = models.DateTimeField(auto_now=True)
class Meta:
db_table = "country_master"
def __unicode__(self):
if self.country_name is None:
return "None"
else:
return self.country_name
class CompanyImage(models.Model):
image_url = models.ImageField(upload_to='company', max_length=255)
country = models.ForeignKey(CountryMaster)
created_date = models.DateTimeField(auto_now_add=True)
updated_date = models.DateTimeField(auto_now=True)
class Meta:
db_table = "company_images"
def __unicode__(self):
return "None"
我试过这个并在admin.py中将其作为显示提交
def country_name(self):
if self.country_id is 0:
return "ALL"
else:
return self.country
country_name.short_description = 'Country'
答案 0 :(得分:0)
一种解决方法是,将country
字段设为可空(null=True, blank=True
),如果为空,则假定为all
个位置。在我看来,这将更清洁。
另一种方法是为CountryMaster
选项创建一个all
对象(作为一个夹具) - 换句话说,一个加载到数据库的夹具,一个CountryMaster
对象name=all
。因此,只要用户选择all
,您就可以为此对象分配引用。