向Djang中的特定组添加用户

2024-04-29 19:40:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在我的Django项目中向created before组添加一些用户,但是我知道如何添加到我知道名称的特定组中,它不是动态的。我想,当我选择一个特定的组,已经添加下一个用户。问题在于:

g = Group.objects.get(name= 'New')

我应该怎么做来替换这个并指出我单击的这个组?你知道吗

你知道吗视图.py地址:

@login_required
def choose_group(request, pk):

if request.method == "POST":

    cvs = get_object_or_404(Cv, pk=pk)

    p = Person.objects.create(name=cvs.author)
    g = Group.objects.get(name= 'New')
    m = Membership.objects.create(person=p, group=g, leader=False)


    return redirect( 'proj.views.cv_detail', pk=cvs.pk )







else:
    cv = Cv.objects.filter(author = request.user)
    cvs = get_object_or_404(Cv, pk=pk)
    mem = Membership.objects.all()

    context = {

        'mem':mem,
        'cvs':cvs,
        'cv':cv
    }

    return render(request, 'choose_group.html', context)

你知道吗型号.py地址:

class Person(models.Model):
    name = models.CharField(max_length=128)

    def __str__(self):              # __unicode__ on Python 2
        return self.name


class Group(models.Model):
    name = models.CharField(max_length=128)
    members = models.ManyToManyField(Person, through='Membership')

    def __str__(self):              # __unicode__ on Python 2
        return self.name


class Membership(models.Model):
    person = models.ForeignKey(Person)
    leader = models.BooleanField(default=False)
    group = models.ForeignKey(Group)

选择_组.html地址:

{% block profile %}

  <div class="jumbotron">
    <h3>Choose a group to add:</h3>
  </div>          

   <ul>
    {% for m in mem %}
    <form method="POST" class="post-form" >{% csrf_token %}
      <li><button type="submit" class="li1"> <b>{{ m.group }}</b></li>

    </form>
    {% endfor %}
   </ul>


{% endblock %}

Tags: namegetreturnobjectsmodelsrequestgroupmem
1条回答
网友
1楼 · 发布于 2024-04-29 19:40:59

我在这里看到的主要问题是,您没有从html发送组名m.group。 要做到这一点,必须在html中向button元素添加name和value(不要忘记关闭button元素)

<button type="submit" class="li1" name="group" value="{{m.group}}"> <b>{{ m.group }}</b></button>

然后,您可以在视图.py通过使用request.POST

g = Group.objects.get(name=request.POST['group'])

相关问题 更多 >