Я хочу, чтобы пользователь мог видеть, к каким категориям он относится, что происходит из модели Private_Users. Я также хочу, чтобы они могли видеть, какую Private_Category они создали.
Первая проблема: private_category2 возвращает объект только от Private_User. Я хочу, чтобы он возвращал объект из Private_Category.
Вторая проблема: я хочу, чтобы private_category2 вводилась в то же поле модели, что и private_category, если private_category никогда не заполнялась.
Есть ли способ сделать это, не создавая новое поле в Private_Category?
forms.py
class PostForm(forms.ModelForm):
...
private_category = forms.ModelChoiceField(queryset = None, widget=forms.Select(
attrs={
'style':'width:33%;'
}), required=False)
private_category2 = MyModelChoiceField(queryset = None, widget=forms.Select(
attrs={
'style':'width:33%;'
}), required=False)
def __init__(self, user, *args, **kwargs):
super(PostForm, self).__init__(*args, **kwargs)
self.fields['private_category'].queryset = Private_Category.objects.all().filter(owner=user)
self.fields['private_category2'].queryset = Private_Users.objects.all().filter(name=user)
models.py
class Private_Category(models.Model):
owner = models.ForeignKey(User, related_name='privateowner', on_delete=models.CASCADE, null=True)
category_password = models.CharField(max_length=50)
title = models.CharField(max_length=200, unique = True)
description = models.CharField(max_length=500)
image = ProcessedImageField(upload_to='category_photo',
processors=[ResizeToFill(500, 500)],
format='JPEG',
options={'quality': 100})
def __str__(self):
return self.title
class Private_Users(models.Model):
name = models.CharField(max_length=50, null=True)
category = models.ForeignKey(Private_Category, null=False, on_delete=models.CASCADE, default=None)
def __str__(self):
return self.name