在Django中,是否有方法(函數)來測試模型字段是否爲主鍵(pk
)?Django中是否有任何函數用於測試模型的字段實例是否爲主鍵?
例如,我的模型是:
class Gender(models.Model):
name = models.CharField(max_length=50, primary_key=True)
def __str__(self):
return self.name
是否有測試名是主鍵的功能?
在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