我想在我的数据库中保存已注释的评论ID。为此我有两个模型:Comentario和Pregunta。看下面:
models.py
class Comentario (models.Model):
titulo = models.CharField(max_length=50)
texto = models.CharField(max_length=200)
autor = models.ForeignKey (Perfil, null=True, blank=True, on_delete=models.CASCADE)
fecha_publicacion = models.DateTimeField(auto_now_add=True)
tag = models.ManyToManyField(Tags, blank=True)
def __str__(self):
return (self.titulo)
class Pregunta (models.Model):
descripcion = models.CharField(max_length=150)
autor = models.ForeignKey (Perfil, null=True, blank=True, on_delete=models.CASCADE)
fecha_pregunta = models.DateTimeField(auto_now_add=True)
comentario_preguntado = models.ForeignKey(Comentario, null=True, blank=True, related_name="pregunta_set")
def __str__(self):
return (self.descripcion)
当评论评论时,我想将'comentario'id保存为'comentario_preguntado'id。为此我创建了下一个视图:
views.py
def ComentarioListar2 (request):
aa=Puesto.objects.filter(nombre_puesto=request.user.nom_puesto).values_list('etiquetas')
bb=Tags.objects.filter(id__in=aa)
objects=Comentario.objects.filter(tag__in=bb).exclude(autor__id=request.user.id)
form = preguntaform(request.POST or None)
if request.method == 'POST' and form.is_valid():
form.instance.autor = request.user
form.instance.comentario_preguntado=request.comentario.id
form.save()
return render(request, 'home/comentario_listar.html', {'objects': objects, 'form': form})
urls.py
urlpatterns = [
url(r'^listar2$', views.ComentarioListar2, name="listar2"),
]
但是我得到了这个错误“ComentarioListar2()缺少1个必需的位置参数:'Comentario_id'”
我不知道如何在comentario_preguntado id中保存评论的评论ID(comentario_id)。
谢谢你的帮助
答案 0 :(得分:0)
需要声明您的URL,以便可以从视图中引用模型实例的主键。
应该是这样的:
url(r'^listar2/(?P<Comentario_id>[0-9]+)/$', views.ComentarioListar2, name="listar2"),
因此,URL的示例是/ listar2 / 101 /。其中101是您的Comentario模型实例的ID。
然后,您可以使用您定义的功能在视图中访问它:
def ComentarioListar2 (request, Comentario_id):
^^^^^^^