簡體   English   中英

匹配查詢不存在 Django

[英]matching query does not exist Django

謝謝你的時間。 我剛剛創建了一個鏈接到每個用戶的模型,盡管我無法從該模型中獲取 id 或他的任何其他字段的對象。 我在嘗試調用每個 user.Parceiros.object 時遇到問題,當我在 python shell 或我得到查詢不存在的項目中嘗試 Parceiros.objects.get(id=1) 時。 althgough 如果我嘗試 Parceiros.objects.filter(id=1) 它讓我得到想要的對象。

並收到此錯誤:parceirosview() 得到了意外的關鍵字參數“id”

views.py(我都試過):

def parceirosview(request, pk):
    parc = get_object_or_404(Parceiros, id=pk)
    context = {'parc': parc}
    return render(request, 'parceiro.html', context)

    def get_queryset(self):
     return super().get_queryset().filter(parceiro__user=self.request.user)

模型.py:

get_user_model = User

class Parceiros (models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    nome = models.CharField(max_length=200)
    endereco = models.TextField(max_length=400, blank=True)
    responsavel = models.CharField(max_length=100)
    tel = PhoneField(max_length=12)
    created_at = models.DateTimeField(auto_now=True)
    updated_at = models.DateTimeField(auto_now_add=True, blank=True)
    ativo = models.BooleanField(default=False)

    def __str__(self):
        return '%s %s' % (self.user, self.nome)

    def get_queryset(self):
        queryset = super(Parceiros, self).get_queryset()
        return queryset

在 urls.py-> urlpatterns 中:

path('parceiro/<int: pk>/',  views.parceirosview, name="parceirosview")

在views.py中

def parceirosview(request, pk=None):
        parc = get_object_or_404(Parceiros, id=pk)
        return render(request, 'parceiro.html', {'parc': parc})

如果您想獲取相關用戶,只需在模板中調用:

{{ parc.user }}

要啟用來自用戶的反向調用以獲取 parc,只需在您的模型外鍵字段中定義一個 related_name 即可。

模型 -> 公園:

user = foreign_key(User, related_name="pracs", .....)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM