Py学习  »  Django

Django错误:没有匹配查询

Hamza Lachi • 4 年前 • 781 次点击  

如何修复此错误我正在尝试修复此错误,但一次又一次 我想检测填写表单的用户,例如test fill the form,但是当我在下面写下代码时,会得到这个错误

任何帮助都将不胜感激!

错误

user_register_model matching query does not exist.

错误屏幕截图

enter image description here

这是我的 视图.py

def buy_form(request):
    if request.method == 'POST':
        usr_buy = user_buy_form(request.POST)
        if usr_buy.is_valid():
            usr_buys = usr_buy.save(commit=False)
            user_register_obj = user_register_model.objects.get(user=request.user)
            usr_buys.users = user_register_obj
            usr_buys.save()
        else:
            return print(usr_buy.errors)

    else:
        usr_buy = user_buy_form()

    context = {'usr_buy':usr_buy}

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

这是我的 模型.py

class user_register_model(models.Model):
    user = models.OneToOneField(User,on_delete=models.CASCADE)
    join_date = models.DateTimeField(default=timezone.now)

    def __str__(self):
        return self.user.username

class user_buy(models.Model):
    users = models.ForeignKey(User,on_delete=models.CASCADE)
    title = models.CharField(max_length=200)
    payment_method = models.CharField(max_length=500)
    price = models.IntegerField()
    Trade_limits = models.IntegerField()
    Location = models.CharField(max_length=1000)

    def __str__(self):
        return self.users.user.username

这是我的 表单.py

class user_buy_form(forms.ModelForm):
    class Meta():
        model = user_buy
        fields = '__all__'
        exclude = ('users',)

这是我的 用户购买.html

{% extends 'base.html' %}
{% block body_block %}
<form class="form-control" method="POST">
    {% csrf_token %}
    {{usr_buy.as_p}}
    <input type="submit" class="btn btn-primary" value="Submit">
</form>
{% endblock %}
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/49668
 
781 次点击  
文章 [ 2 ]  |  最新文章 4 年前
Anvesh
Reply   •   1 楼
Anvesh    4 年前

我认为Reavest.Upple不存在于UsRyReavestJuy模型模型中,这就是为什么它给出匹配查询不存在错误的原因,首先在UsReReavestBuy模型中创建它,然后查询它。

arjun
Reply   •   2 楼
arjun    4 年前

我看不出有什么地方可以创造 user_register_model 。如果要添加当前登录的用户,可以执行以下操作:

request.user 将为您提供当前登录的用户,因此为此用户必须登录。

    @login_required
    def buy_form(request):
    if request.method == 'POST':
        usr_buy = user_buy_form(request.POST)
        if usr_buy.is_valid():
            usr_buys = usr_buy.save(commit=False)
            usr_buys.users = request.user
            usr_buys.save()
            return redirect('some_path') # redirect to some path after saving the form 

类名通常应该使用CapWords约定。