gpt4 book ai didi

python - 带有外键字段列表的 Django 表单

转载 作者:行者123 更新时间:2023-11-28 21:27:36 26 4
gpt4 key购买 nike

我有以下模型,我正在尝试为其创建表单:

class Letter(models.Model):
title = models.CharField(max_length=100)
publish_date = models.TimeField()

class LetterRecipients(models.Model):
letter = models.ForeignKey(Letter)
recipient_name = models.CharField(max_length=200)
recipient_rating = models.IntegerField()
has_responded = models.BooleanField()

我想要一个允许用户为信件输入标题和发布日期的单一表单,并在同一个表单中按姓名和评级输入多个收件人。

任何人都可以帮助创建表单模型吗?我不知道如何让 Django 使用 {{ form.as_p }} 生成这个表单。我想我必须使用 jQuery 在 HTML 页面上创建额外的收件人行,但我如何让 Django 将这些解析到模型中?

如有任何帮助,我们将不胜感激。

谢谢。方舟

最佳答案

方舟,可以用ModelMultipleChoiceField以 Django 形式。这里有一些大致的例子。我创建“帖子”应用只是为了快速测试:

表单.py

from django import forms
from django_test.posts.models import Letter, LetterRecipients


class LetterForm(forms.Form):
title = forms.CharField()
publish_date = forms.TimeField()
recepient = forms.ModelMultipleChoiceField(
queryset=LetterRecipients.objects.all()
)

模型.py

from django.db import models


class Letter(models.Model):
title = models.CharField(max_length=100)
publish_date = models.TimeField()


class LetterRecipients(models.Model):
letter = models.ForeignKey(Letter)
recipient_name = models.CharField(max_length=200)
recipient_rating = models.IntegerField()
has_responded = models.BooleanField()

def __unicode__(self):
return self.recipient_name

View .py

# Create your views here.
from django_test.posts.forms import LetterForm
from django.shortcuts import render


def index(request):
form = LetterForm()
data = {'form': form}

return render(request, 'posts/index.html', data)

index.html

{% load url from future %}

{{ form.as_p }}

关于python - 带有外键字段列表的 Django 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10672811/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com