如何篩選模型表單中ForeignKey字段顯示的選項?ModelForm中的ForeignKey字段中的Django篩選器選擇
我試圖按照這個線程How do I filter ForeignKey choices in a Django ModelForm?,但我很新的Django,我很困惑。
我對用戶的應用程序(用的UserManager/AbstractUser模型,不相關)
另一個應用程序爲:
- 產品,與PRODUCT_ID和產品名稱,
- 採購,與PRODUCT_ID和user_id。
門票的另一個應用程序,具有打開票的窗體。
在這種形式下,我只想顯示用戶購買的產品,因此用戶只能打開他擁有的產品的票證。
下面的代碼,我已經刪除非相關領域等
票務型號
class Ticket(models.Model):
...
user = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='tickets')
product = models.ForeignKey('products.Product', related_name='tickets')
票的ModelForm
class TicketForm(forms.ModelForm):
class Meta:
model = Ticket
fields = ['subject', 'reason', 'product']
產品&購買模式
class Product(models.Model):
name = models.CharField(max_length=100, default="")
...
class Purchase (models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='purchases')
product = models.ForeignKey(Product)
...
新工單窗體視圖
def new_ticket(request):
if request.method=='POST':
ticket_form = TicketForm(request.POST)
...
if ticket_form.is_valid() and comment_form.is_valid():
ticket = ticket_form.save(False)
ticket.user = request.user
ticket.save()
...
return redirect(reverse('ticket-detail', args={ticket.pk}))
else:
ticket_form = TicketForm()
args={'ticket_form':ticket_form}
args.update(csrf(request))
return render(request, 'tickets/ticket_form.html',args)
在我使用{{ticket_form}}表單中的模板。
在此先感謝。
任何其他建議/解釋? 感謝先進! – Ire