![](/img/trans.png)
[英]How do I get a cascading drop down selection box with my foreign keys in Django?
[英]How to get the foreign keys related to drop down only of that user in Django ModelForm
我有這樣的Category
模型:
class Task(models.Model):
'''
Task for the wedding plans
'''
description = models.CharField(max_length=128)
owner = models.ForeignKey(User, default="bride")
category = models.ForeignKey(Category)
class Category(models.Model):
user = models.ForeignKey(User)
name = models.CharField(max_length=128)
budget = models.DecimalField(default=0.0, decimal_places=2, max_digits=8, help_text="Amount in dollars ($)")
class Meta:
verbose_name_plural = "Categories"
在我的forms.py
:
class CategoryForm(ModelForm):
class Meta:
model = Category
exclude = ['user']
class TaskForm(ModelForm):
class Meta:
model = Task
exclude = ['owner']
# views
form = TaskForm()
當我在模板中調用{{ form }}
時,它顯示了所有用戶創建的類別。 但我想顯示僅由登錄用戶創建的類別。 怎么做?
請嘗試以下操作:
form = TaskForm()
form.fields['owner'].queryset = Task.objects.filter(owner=request.user)
如果多次使用TaskForm
,請按照以下說明進行修改:
class TaskForm(ModelForm):
class Meta:
model = Task
exclude = ['owner']
def __init__(self, user, *args, **kwargs):
super(TaskForm, self).__init__(*args, **kwargs)
self.fields['owner'].queryset = Task.objects.filter(owner=user)
然后,傳遞request.user
:
form = TaskForm(request.user)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.