xdjango带queryset的内部联接表

enxuqcxy  于 2021-06-24  发布在  Mysql
关注(0)|答案(1)|浏览(440)

我正在尝试内部联接两个表: Comments 以及 Auth . 所以我储存 useridComments 我需要把它和table配对 Auth .
我和你一起做的 .raw() ,但我不想和 raw() ,我也试过其他的喜欢 get_objects_or_404 但这也不起作用,因为存在多个查询。
这是我的问题,工作除外。

SELECT * FROM index_comment INNER JOIN auth_user WHERE index_comment.userid=auth_user.id

下面是我的评论模式:

class Comment(models.Model):
content = models.TextField()
userid = models.IntegerField()
published = models.DateField(default=timezone.now)
postid = models.IntegerField()

视图.py

def readPost(request, postName):
content = get_object_or_404(Post, link=postName)
kategori = get_object_or_404(Category, id=content.category_id)
user = get_object_or_404(User, id=content.username_id)  

if request.method == "POST":
    form = sendComment(request.POST)
    if form.is_valid:
        formContent = strip_tags(request.POST["content"])
        newComment = Comment()
        newComment.content = formContent
        newComment.postid = content.id
        newComment.save()
        return redirect('post',content.link)

else:
    form = sendComment
    args = {
        "content": content,
        "kategori": kategori,
        "user":user,
        "commentForm": form,

    }

# return HttpResponse("cat.id")

    return render(request, "theme/single.html", args)

这是表格

class sendComment(forms.Form):
content = forms.CharField(widget=forms.TextInput(attrs={"class":"form-control"}))

所以我需要配对 useridComments 表到 Auth 身份证,然后拿到 username .

oalqel3c

oalqel3c1#

通过使用从index\u comment.userid到auth\u user.id的外键关系(django docs)正确设置模型,django将为您处理联接,并通过主模型(index\u comment)提供联接表(auth\u user)的列。
比如:

from django.db import models
from django.contrib.auth.models import User

class Comment(models.Model):
    content = models.TextField()
    userid = models.ForeignKey(User,on_delete=models.CASCADE)
    published = models.DateField(default=timezone.now)
    postid = models.IntegerField()

将注解表中的userid绑定到django的内置auth功能的user表。名称字段将提供评论,如
comment.userid.username

相关问题