models.py
class Link_list(models.Model):
link_id=models.AutoField(primary_key=True)
link_episode_season_id=models.ForeignKey(Episode_list,on_delete=models.PROTECT)
link_user_id=models.ForeignKey(User, on_delete=models.PROTECT,blank=True)
name=models.CharField(max_length=50)
link=models.TextField()
upvote=models.PositiveIntegerField(default=0)
downvote=models.PositiveIntegerField(default=0)
views=models.PositiveIntegerField(default=0)
link_type=models.ForeignKey(Content_type_list,on_delete=models.PROTECT)
subtitle=models.ManyToManyField(Subtitle_list)
link_created_at=models.DateTimeField(default=timezone.now)
quality=models.ForeignKey(Quality_list,on_delete=models.PROTECT)
def __str__(self):
return f'{self.name}'
class Meta:
verbose_name_plural='Link'
forms.py
class Create_Link_form(forms.Form):
name = forms.CharField(widget=forms.TextInput(attrs={'placeholder': '','maxlength':50}))
link = forms.CharField(widget=forms.Textarea(attrs={'placeholder': ''}))
link_type = forms.ModelChoiceField(queryset=Content_type_list.objects.all())
quality = forms.ModelChoiceField(queryset=Quality_list.objects.all())
views.py
@login_required
def Link_create(request):
form=Create_Link_form(
data=(request.POST or None),
files=(request.FILES or None),
)
if form.is_valid():
if request.user.is_active:
r=Link_list.objects.create(
name=request.POST["name"],
link=request.POST["link"],
link_type=request.POST["link_type"],
quality=request.POST["quality"],
link_episode_season_id=x,
link_user_id=request.user,
)
r.save()
messages.success(request, f'Season has been created!')
else:
messages.warning(request, f'Please Login to create movies!')
else:
print(form.errors)
context={
"form":form,
"form_name":url
}
return render(request,'movies_list/link_list_create.html',context)
ИСПОЛЬЗОВАНИЕ МОДЕЛЕЙ. Форму это работает просто отлично. Но для создания пользовательского поля ManytoMany я реализовал с помощью пользовательского formField.Views, чтобы получить все данные, необходимые для создания объекта ссылки. Но я не знаю, как создавать объекты ссылок без использования внешних экземпляров..
ValueError at / link / new / Невозможно назначить «1»: «Link_list.link_type» должен быть экземпляром «Content_type_list».