изменение имени формы в теге шаблона без влияния models.py в django - PullRequest
0 голосов
/ 28 октября 2019

Здравствуйте, я хочу изменить имя в шаблоне при отображении формы в django. Я могу изменить его в шаблоне, только если я внес изменения в мой models.py, но я хочу знать, есть ли способ, где я могумогу изменить имя определенного поля формы, не влияя на мои models.py

Я могу изменить способ отображения поля формы, только если я изменил models.py, но всякий раз, когда я это делаю, я получаюсообщение об ошибке

no such table: login_record

class Record(models.Model):
    choice1 = (('O Positive', 'O Positive'),
               ('O Negative', 'O Negative'),
               ('A Positive', 'A Positive'),
               ('A Negative', 'A Negative'),
               ('B Positive', 'B Positive'),
               ('B Negative', 'B Negative'),
               ('AB Negative', 'AB Negative'),
               ('AB Positive', 'AB Positive'),
               )
    blood_TYPE = models.CharField(max_length=20, choices=choice1, default='O Positive')
    staff = models.CharField(max_length=20, default=' ')
    id_no = models.CharField(max_length=20, default=' ')
    donar_name = models.CharField(max_length=30)
    units = models.FloatField(default=0, validators=[MinValueValidator(0)])
    date = models.DateField()

    class Meta:
        ordering = ['-date']
    def __str__(self):
        return self.id_no

здесь - мой models.py

class DonateForm(forms.ModelForm):
    choice1 = (('O Positive', 'O Positive'),
               ('O Negative', 'O Negative'),
               ('A Positive', 'A Positive'),
               ('A Negative', 'A Negative'),
               ('B Positive', 'B Positive'),
               ('B Negative', 'B Negative'),
               ('AB Negative','AB Negative'),
               ('AB Positive','AB Positive'),
               )
    blood_group = forms.ChoiceField(choices=choice1, initial='O Positive')

    class Meta:
        model = Record
        fields = ('donar_name', 'id_no', 'blood_group', 'units', 'date')

здесь - мой forms.py

@login_required(login_url='/register/login/')
def donate(request):
    error = []
    if request.method == 'POST':
        record = Record()
        record.blood_TYPE = request.POST['blood_group']
        record.staff = request.user.username
        record.donar_name = str(request.POST['donor_name']).title()
        record.id_no = str(request.POST['id_no']).upper()
        if DonarDetail.objects.all().filter(id_no=str(request.POST['id_no']).upper()):
            if DonarDetail.objects.all().filter(
                    id_no=str(request.POST['id_no']).upper(),
                    blood_group=record.blood_TYPE,
            ):
                if DonarDetail.objects.all().filter(
                        id_no=str(request.POST['id_no']).upper(),
                        blood_group=record.blood_TYPE,
                        number_month__gt=2,
                        ) | DonarDetail.objects.all().filter(
                        id_no=str(request.POST['id_no']).upper(),
                        blood_group=record.blood_TYPE,
                        number_month=-1,
                        ):
                    print('ok')
                else:
                    error.append('donar not eligible')
            else:
                error.append('blood does not match donnar ')
        else:
            error.append('donar not available ')
        if len(error) == 0:
            record.units = request.POST['units']
            record.date = request.POST['date']
            record.save()
        else:
            form = DonateForm()
            return render(request, 'login/donate.html', {'form': form, 'errors': error})
        a = DonarDetail.objects.get(id_no=str(request.POST['id_no']).upper())
        a.last_donated_date = request.POST['date']
        a.refresh()
        a.save()
        storage = BloodStorage()
        if BloodStorage.objects.all().filter(blood_group=request.POST['blood_group']):
            storage1 = BloodStorage.objects.get(blood_group=request.POST['blood_group'])
            storage1.units += float(request.POST['units'])
            storage1.save()
        else:
            storage.blood_group = request.POST['blood_group']
            storage.units = request.POST['units']
            storage.save()
        return HttpResponse('stored')
    else:
        error = []
        form = DonateForm()
        return render(request, 'login/donate.html', {'form': form, 'error': error})

и здесь всякий раз, когда я меняю поле donar_nameна donor_name в моем models.py, а также forms & views.py, тогда я могу увидеть изменение донорского имени на донорское имя в моем шаблоне, но все же я получаю сообщение об ошибке, говорящее, что такой таблицы нет: login_record при этом яЯ хочу знать, есть ли где-нибудь, где я могу изменить способ просмотра моих форм, не влияя на мои модели в моих шаблонах

и здесь всякий раз, когда я изменяю поле donar_name на donor_name в моих моделях.py, а также forms & views.py, тогда я могу видеть изменение от имени донора к имени донора в моем шаблоне, но все же у меня есть ошибка, говорящая, что такой таблицы нет: login_record, поэтому я хочу знать, есть лив любом месте, где я могу изменить способ просмотра моих форм, не затрагивая мои модели в моих шаблонах

1 Ответ

0 голосов
/ 28 октября 2019

Вы можете определить метки внутри класса Meta следующим образом

   class Meta:
         model = Record      
         labels = {'donor_name':'Donor Name'}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...