Django中是否有任何函数用于测试模型的字段实例是否为主键?
在Django中,是否有方法(函数)来测试模型字段是否为主键(pk
)?Django中是否有任何函数用于测试模型的字段实例是否为主键?
例如,我的模型是:
class Gender(models.Model):
name = models.CharField(max_length=50, primary_key=True)
def __str__(self):
return self.name
是否有测试名是主键的功能?
您可以使用get_field
从model meta api,然后检查primary_key
属性,这将是主键True
。
field_name = 'name'
field = MyModel._meta.get_field(field_name)
field.primary_key
对于get_field方法,还有另一个参数'many_to_many',如果该字段是m2m字段会怎么样? –
@Alasdair,请更正第二行代码。我认为你的意思是'field = MyModel._meta.get_field(field_name)',对吗? – Caco
我不明白您的第一条评论 - ['get_field'](https://docs.djangoproject.com/en/1.11/ref/models/meta/#django.db.models.options.Options.get_field)需要一个参数'field_name',所以我不确定你在问什么m2m字段。 – Alasdair
为什么你需要知道(而不是已经知道)?什么是用例? –
这与另一个问题有关。为了能够在'django-modeltranslation'包中处理主键字段翻译的情况。参考[link](https://github.com/deschler/django-modeltranslation/issues/144),评论于2016年10月31日,由yerihyo发表。我在[链接]中的相关问题(https://stackoverflow.com/questions/46779674/setting-django-model-primary-key-field-for-translation-with-django-modeltranslat)。 – Caco