首页 > 解决方案 > 如何自动将配置文件添加到 ManyToManyField?

问题描述

我有这个课程模型

class Minicursos(models.Model):
     nome_minicurso = models.CharField(max_length=150)

     resumo = models.TextField(max_length=500, default = "")
     descricao = models.TextField(max_length=500, default = "")

     imagem_minicurso = models.ImageField(upload_to="gallery", height_field=None, 
     width_field=None, max_length=None, default = "")
     video_explicativo = models.FileField(upload_to="video/%y", default="",)

     carga_horaria = models.IntegerField()

     alunos = models.ManyToManyField(Profile, 'Alunos')

我的html是这样的

{% if user.is_authenticated %}
        <form id="ingressar-form" method="POST">
            {% csrf_token %}
            {{ form.as_p }}
            <a href="/minicurso/{{minicurso.id}}/aulas.html"><button id="ingressar" type="submit" value="Create">INGRESSAR</button></a>
        </form>
{% else %}
    <strong><p>Para ingressar no minicurso faça <a href="/login">Login</a> ou <a href="/register">Registre-se</a>.</p></strong>
{% endif %}

我希望当用户点击“ingressar”他的个人资料时,它将被添加到现场学生(alunos)

我尝试过这个

if request.method == 'POST':
    
    aluno = Minicursos.alunos.add(User)
    aluno.save()

但我得到这个错误

aluno = Minicursos.alunos.add(User) AttributeError: 'ManyToManyDescriptor' 对象没有属性 'add'

有人可以帮助我吗!?

标签: djangodjango-rest-frameworkdjango-viewsmany-to-manymanytomanyfield

解决方案


您只能将对象添加到模型的实例,而不能添加到类对象。所以你首先需要创建一个Minicursos.

详细解释可以查看官方文档


推荐阅读