django模型参数中的条件句
快速提问。有人知道如何在django模型中编写条件语句吗 例如,我这里有以下代码:django模型参数中的条件句,django,Django,快速提问。有人知道如何在django模型中编写条件语句吗 例如,我这里有以下代码: class Trip(models.Model): tripName = models.CharField(max_length=64) tripLogo = models.ImageField(default='default_trip.jpg', upload_to='trip_pics') 所以这里的默认值是'default\u trip.jpg',但是我想写一个条件,如果tripNam
class Trip(models.Model):
tripName = models.CharField(max_length=64)
tripLogo = models.ImageField(default='default_trip.jpg', upload_to='trip_pics')
所以这里的默认值是
'default\u trip.jpg'
,但是我想写一个条件,如果tripName==“俄语”比default=rusia.jpg
好。可能不会更改默认值,但会启动另一个映像。这不是在模型级别可以完成的事情,必须在控制器中完成(否则,这将破坏MVC模式)
请记住,无论底层数据库引擎是什么,Django的ORM包装器都必须将模型类转换为可用表。据我所知,这种类型的“条件默认值”不是任何数据库引擎的一部分。default arg可以是calable
def contact_default():
return {"email": "to1@example.com"}
contact_info = JSONField("ContactInfo", default=contact_default)
阅读,这部分代码帮助我解决了问题
def save(self, *args, **kwargs):
tripName = getattr(self, 'tripName')
if tripName in tripImages:
self.tripLogo = "{}.png".format(tripName.lower())
else:
self.tripLogo = "default_trip.png"
我害怕这一点,所以我似乎不得不将这项任务转移到我项目的另一个层次。感谢您的回复:)