Как показать клиентов из авторизованных пользователей в django? - PullRequest
0 голосов
/ 05 августа 2020

У меня есть суперпользователь, несколько пользователей и несколько клиентов. Я хочу, чтобы пользователи видели своих клиентов, добавляли, редактировали и удаляли их. Я сделал все это, но теперь все пользователи видят клиентов друг друга.

Я новичок в django, так что это все в новинку для меня, спасибо за вашу помощь :)

Вот мой код:

models.py
from django.db import models
# Create your models here.


class Customer(models.Model):
    customer_name = models.CharField(max_length=100, null=True)
    customer_phone = models.CharField(max_length=100, null=True, blank=True)
    customer_email = models.CharField(max_length=100, null=True)
    customer_date_created = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.customer_name


class Service(models.Model):
    CATEGORY = (
        ('Service 1', 'Service 1'),
        ('Service 2', 'Service 2'),
        ('Service 3', 'Service 3'),
    )

    service_customer = models.ForeignKey(
        Customer, null=True, on_delete=models.SET_NULL, blank=True)
    service_category = models.CharField(
        max_length=100, null=True, choices=CATEGORY)
    service_description = models.CharField(
        max_length=100, null=True, blank=True)
    service_date_created = models.DateTimeField(auto_now_add=True)
    service_date = models.DateField(
        auto_now=False, auto_now_add=False, null=True)

    def __str__(self):
        return f'{self.service_category} {self.service_description} {self.service_date}'

Вот forms.py

from django import forms
from django.forms import ModelForm
from . models import Customer, Service

from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm
from django.forms.widgets import DateInput


class UserRegForm(UserCreationForm):
    email = forms.EmailField()

    class Meta:
        model = User
        fields = ['username', 'email', 'password1', 'password2']


class NewCustomerForm(ModelForm):
    class Meta:
        model = Customer
        fields = '__all__'


class NewServiceForm(ModelForm):
    class Meta:
        model = Service
        fields = '__all__'
        widgets = {
            'service_date': DateInput(attrs={'type': 'date'}),
        }

А вот views.py

from django.shortcuts import render, redirect, get_object_or_404
from django.http import HttpResponse
from django.contrib.auth.forms import UserCreationForm
from . forms import UserRegForm, NewCustomerForm, NewServiceForm
from django.contrib import messages
from django.contrib.auth.models import User, auth
from . decorators import unauthenticated_user
from .models import Customer, Service
from django.contrib.auth.decorators import login_required

@login_required
def customer(request, pk_test):
    customer = Customer.objects.get(user=request.user, id=pk_test)
    context = {'customer': customer}
    return render(request, 'users/customer.html', context)

В views.py У меня есть больше функций, но я думаю, они или не имеют отношения к этому вопросу, надеюсь, я прав.

Хорошо, все работает, я могу добавить регистрацию новых пользователей и создать новых клиентов, но мне нужно показывать только клиентов, принадлежащих тому пользователю, который их создал ...

Пожалуйста, посоветуйте?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...