django - 如何自动将配置文件添加到 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'
有人可以帮助我吗!?
解决方案
您只能将对象添加到模型的实例,而不能添加到类对象。所以你首先需要创建一个Minicursos
.
详细解释可以查看官方文档。
推荐阅读
- c# - ASP.NET 核心操作不加载。可能路由不好?
- python - 安装了 Imutils 但 python 给出错误“没有名为 imutils 的模块”
- react-native - react-native-ssl-pinning 在 iOS GET 请求中删除标头
- php - 大子类别显示在所有子类别中
- javascript - 我的样式表路径和 JQuery 文件路径总是破解,每次更新文件时都必须重新命名文件名
- apache-kafka - 其他消息系统如何处理 Kafka 中的 Zookeeper 解决的问题?
- mongodb - 无法删除“Monogod.lock”:只读文件系统
- scalatest - Scalatest中mustBe的否定是什么
- mysql - 对于某些具有正确凭据的用户,Laravel 登录返回 false
- python - IndexError:列表索引超出范围,但它没有