gpt4 book ai didi

Django ajax 表单,选择字段依赖

转载 作者:行者123 更新时间:2023-12-01 04:27:35 26 4
gpt4 key购买 nike

模型.py

class Book(models.Model):
title = models.CharField()
genre = models.ManyToManyField(Genre)

class Genre(models.Model):
name = models.Charfield()

class ReadBook(models.Model):
genre = models.ForeignKey(Genre)
books = models.ManyToManyField(Book)

我还有一个 ModelForm:

class ReadBookForm(ModelForm):
class Meta:
model = ReadBook

模板.html

<form action="/add_report/" method="post">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit" />
</form>

目的:默认情况下仅向访问者显示一个字段 - 流派。当他完成此选择后 - 显示书籍模型中与所选类型相关的其他字段。

最佳答案

表单标签内:

{{ form.genre }}
<div id="books"></div>
<input type="submit" value="Submit" disabled="yes" />

然后在 javascript 中(jQuery 非常适合这个东西):

$('#{{ form.genre.id }}').change(function(){
$('#books').load('{% url get_genre_books %}', {genre: $(this).value()})
});

您必须创建一个 View ,该 View 将返回应放置在此 div 中的 html:

def get_genre_books(request):
genre = get_object_or_404(pk=request.GET.get('genre', None))
# here render a template or something that shouls be multiple selector of the books)
resp = ", ".join(genre.book_set.values_list('title', flat=True))
return HttpResponse(resp)

当然,将此 View 添加到 urls.py 中。

许多解决方案之一:)没有测试它(只写在这里,所以可能在某个地方有小错误):)

关于Django ajax 表单,选择字段依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5419995/

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