我有一個帶有“客戶”欄位的自定義用戶模型。每個用戶都有一個客戶。我正在嘗試獲取已登錄用戶的客戶,以便在我添加侵權者時,添加正確的客戶以供記錄。
- 我認為下面的觀點是錯誤的。客戶=請求.用戶.客戶
- 認為下面的形式是錯誤的。customer__user=self.customer 客戶
視圖.py
@login_required(login_url='login')
def createInfringer(request):
customer=request.user.customer
form = InfringerForm(customer=request.customer)
if request.method == 'POST':
form = InfringerForm(customer, request.POST)
if form.is_valid():
form.save()
return redirect('infringer-list')
context ={'form': form}
return render (request, 'base/infringement_form.html', context)
表單.py
class InfringerForm(ModelForm):
def __init__(self, customer, *args, **kwargs):
self.customer = customer
super(InfringerForm,self).__init__(*args, **kwargs)
self.fields['customer'].queryset = Customer.objects.filter(customer__user=self.customer)
class Meta:
model = Infringer
fields = ['name', 'brand_name','status' , 'customer']
模型.py
class Infringer (models.Model):
name = models.CharField(max_length=200)
brand_name = models.CharField(max_length=200, null=True)
updated = models.DateTimeField(auto_now=True)
created = models.DateTimeField(auto_now_add=True)
groups = models.ForeignKey(Group, on_delete=models.CASCADE,default=1)
status = models.ForeignKey(Status, on_delete=models.SET_NULL,null=True)
customer = models.ForeignKey(Customer, on_delete=models.SET_NULL,null=True)
class Meta:
ordering = ['-updated', '-created']
def __str__(self):
return self.name
class Customer (models.Model):
name = models.CharField(max_length=200)
email = models.EmailField(max_length=254, default='@cudo.ai')
updated = models.DateTimeField(auto_now=True)
created = models.DateTimeField(auto_now_add=True)
phone_number = PhoneNumberField(blank=True)
groups = models.ForeignKey(Group, on_delete=models.CASCADE,default=1)
player = models.ManyToManyField(Player, related_name='player', blank=True)
is_active = models.BooleanField(default=False)
class Meta:
ordering = ['name']
def __str__(self):
return self.name
class User(AbstractUser):
email = models.EmailField(unique=True, null=True)
avatar = models.ImageField(null=True, default="logo.svg")
username = models.CharField(max_length=40, unique=False,
default='')
customer = models.ForeignKey(Customer, on_delete=models.SET_NULL,null=True)
uj5u.com熱心網友回復:
如果我理解正確,你就正確地識別了問題。所以我認為你需要:
- 更改 views.py 中的第 5 行:
form = InfringerForm(customer=customer) - 更改 form.py 中的第 5 行"
self.fields['customer'].queryset = Customer.objects.filter(customer=customer)
uj5u.com熱心網友回復:
- views.py customer=request.user.customer 表單 = InfringerForm(customer=customer)
- forms.py self.fields['客戶'].queryset = Customer.objects.filter(name=customer)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/533580.html
標籤:Python姜戈django 表单django-查询集
下一篇:我該怎么做才能訪問對方的外鍵?
