2013-07-06 26 views
0

假設我有一個的ModelForm以下模型:讓OneToOneField到用戶只有使用的ModelForm呈現一個文本輸入(User.first_name)

MyModel(models.Model): 
    user = models.OneToOneField(User) 
    age = models.IntegerField() 
    is_male = models.BooleanField(default=False) 

MyModelForm(models.ModelForm): 
    class Meta: 
     model = MyModel 
     fields = ("user", # How to only insert a value for user.first_name? 
      "age") 

哪有的ModelForm只使用一個字段(first_name)的OneToOneField(user)它引用的模型(MyModel)?

換句話說,我想MyModelForm只呈現一個文本輸入,通過一個值到user.first_name

我不明白爲什麼它不會是可能的,因爲我可以做成功地執行以下操作:

>>> john = User.objects.create(first_name="John") 
+0

你需要更清楚一點。你是否希望表單將MyModel實例鏈接到具有該名字的現有用戶,或創建一個新用戶? –

+0

我希望它鏈接到現有的用戶。所以我的問題的最後部分實際上是誤導性的,對不起。我知道我必須以某種方式傳遞信息(request.user)來解決右錶行。但我不知道在哪裏。 – Bentley4

回答

0

我改寫了這個問題,並適應代碼。答案可以找到here

相關問題