Django 1.11.5
此代码的问题在于我已经在模型中创建了一个列表(注释"字段列表已创建")。然后在Meta嵌套类中,我想使用相同的列表。
是否有可能不创建两次列表?
utils.py
class Person(LoginRequiredMixin,
models.Model):
def get_composed_string(self):
composed_string = ""
field_list = get_distinctive_fields() # Field list created.
for field in field_list:
composed_string += value
def __str__(self):
return self.get_composed_string()
class Meta:
unique_together = get_distinctive_fields() # Failed to use already created list.
models.py
$('#div1').scroll(function() {
$('#div2').scrollTop($('#div1').scrollTop());
});
$('#div2').scroll(function() {
$('#div1').scrollTop($('#div2').scrollTop());
});
答案 0 :(得分:0)
我看到了解决这个问题的两种方法。首先,您可以使用常量来表示独特字段列表而不是方法。即DISTINCTIVE_FIELDS = [...]
另一方面,您可以在Meta类中定义独特字段,然后在get_composed_string
方法中使用它。像
def get_composed_string(self):
return " ".join(self.Meta.unique_together)
如果您对get_composed_string
以外的任何内容不需要此__str__
,则可以直接在__str__
方法中执行此操作...