Python 如何创建;“多对多”;对象使用模板?
我希望允许用户使用模板加入列出的组之一。所以我在这里发现了两个问题:Python 如何创建;“多对多”;对象使用模板?,python,django,django-forms,django-templates,many-to-many,Python,Django,Django Forms,Django Templates,Many To Many,我希望允许用户使用模板加入列出的组之一。所以我在这里发现了两个问题: “加入”按钮作为一个具有多对多字段的表单 在模板中作为按钮操作运行python函数。如果可能的话,我想运行这样的程序: group.members.add(request.user) 希望能刷新一页 型号.py: class Group(models.Model): name = models.CharField(max_length=500) creator = models.ForeignKey(User
group.members.add(request.user)
希望能刷新一页class Group(models.Model):
name = models.CharField(max_length=500)
creator = models.ForeignKey(User)
members = models.ManyToManyField(User, blank=True, related_name='member')
{% for group in groups %}
<p>{{ group.name }} <button type="submit" action="">Join</button></p>
<hr>
{% endfor %}
template.html:
class Group(models.Model):
name = models.CharField(max_length=500)
creator = models.ForeignKey(User)
members = models.ManyToManyField(User, blank=True, related_name='member')
{% for group in groups %}
<p>{{ group.name }} <button type="submit" action="">Join</button></p>
<hr>
{% endfor %}
{%用于组中的组%}
{{group.name}}加入
{%endfor%}
多对多字段没有什么特别之处。你想在任何地方做的任何事情都需要一个视图。您需要一个新视图,其中包含从按钮调用的新URL,在该视图中,您可以获取对象并根据需要对其进行修改。因此,您需要在m2m字段上创建一个调用.add()
的视图函数。@ozgur我已经有了一个基于类的视图。这意味着我应该在那里添加一个函数,比如join_group(group)?很抱歉问了这么多愚蠢的问题,但我对Django还很陌生。不,你可以创建一个简单的视图函数,也可以编写一个单独的基于类的视图,比如JoinGroupView
。