2017-10-17 20 views
1

在Django中,是否有方法(函數)來測試模型字段是否爲主鍵(pk)?Django中是否有任何函數用於測試模型的字段實例是否爲主鍵?

例如,我的模型是:

class Gender(models.Model): 
    name = models.CharField(max_length=50, primary_key=True) 

    def __str__(self): 
     return self.name 

是否有測試名是主鍵的功能?

+3

爲什麼你需要知道(而不是已經知道)?什麼是用例? –

+0

這與另一個問題有關。爲了能夠在'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

回答

4

您可以使用get_fieldmodel meta api,然後檢查primary_key屬性,這將是主鍵True

field_name = 'name' 
field = MyModel._meta.get_field(field_name) 
field.primary_key 
+0

對於get_field方法,還有另一個參數'many_to_many',如果該字段是m2m字段會怎麼樣? –

+0

@Alasdair,請更正第二行代碼。我認爲你的意思是'field = MyModel._meta.get_field(field_name)',對嗎? – Caco

+0

我不明白您的第一條評論 - ['get_field'](https://docs.djangoproject.com/en/1.11/ref/models/meta/#django.db.models.options.Options.get_field)需要一個參數'field_name',所以我不確定你在問什麼m2m字段。 – Alasdair

相關問題