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

我希望允许用户使用模板加入列出的组之一。所以我在这里发现了两个问题:

  • “加入”按钮作为一个具有多对多字段的表单
  • 在模板中作为按钮操作运行python函数。如果可能的话,我想运行这样的程序:

    group.members.add(request.user)
    
    希望能刷新一页

  • 型号.py

    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