Django загрузить форму для lo go в BinaryField - PullRequest
0 голосов
/ 30 марта 2020

У меня есть таблица MySQL с языками, и я хочу иметь поле флага рядом с каждым языком. Это существующая ситуация, которую я пытаюсь преобразовать из другого языка в Django.

Это модель, которая у меня есть для моих языков:

class Language(models.Model):
    language = models.CharField(primary_key=True,unique=True, max_length=8)
    description = models.CharField(max_length=35)
    flag = models.BinaryField(editable=True, blank=True, null=True)

    class Meta:
        db_table = 'language'
        verbose_name_plural = "language"

    def __str__(self):
        return self.description

Мне уже удалось отобразить флаги в моем списке. Но я также хочу иметь функцию загрузки в моей форме, но я не могу понять это.

forms.py

class LanguageForm(forms.ModelForm):

    class Meta():
        model = Language
        fields = '__all__'

        widgets = {
            'flag': forms.FileInput()
        }

views.py

class CreateLanguageView(LoginRequiredMixin,CreateView):
    login_url= '/login/'
    redirect_field_name = 'app/language_list.html'
    form_class = LanguageForm
    model = Language

    def form_valid(self, form):
        if form.is_valid():
            data = form.cleaned_data

            self.object.save()

        return HttpResponseRedirect(self.get_success_url())

    def get_success_url(self):
        return reverse('language_list')
...