соответствующий запрос не существует Django - PullRequest
0 голосов
/ 21 февраля 2020

спасибо за ваше время. Я только что создал модель, которая связана с каждым пользователем, хотя я не могу получить объекты из этой модели для идентификатора или любые другие поля из его. У меня возникают проблемы при попытке вызвать каждого пользователя user.Parceiros.object, когда я пытаюсь выполнить Parceiros.objects.get (id = 1) на оболочке python или в проекте, который я получаю, запрос не существует. Хотя, если я попробую 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)

models.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

1 Ответ

1 голос
/ 21 февраля 2020

в 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 }}

чтобы разрешить обратный вызов от пользователя для получения пар c, просто определите related_name в поле внешнего ключа модели.

model -> par c:

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