У меня есть суперпользователь, несколько пользователей и несколько клиентов. Я хочу, чтобы пользователи видели своих клиентов, добавляли, редактировали и удаляли их. Я сделал все это, но теперь все пользователи видят клиентов друг друга.
Я новичок в 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 У меня есть больше функций, но я думаю, они или не имеют отношения к этому вопросу, надеюсь, я прав.
Хорошо, все работает, я могу добавить регистрацию новых пользователей и создать новых клиентов, но мне нужно показывать только клиентов, принадлежащих тому пользователю, который их создал ...
Пожалуйста, посоветуйте?
Спасибо!