2016-01-08 2 views
0

Существует моя модель:Django. Как создать django_easyselect_form с пользовательским полем?

class MoneyTransfer(models.Model): 
    sender = models.ForeignKey(BankAccount, related_name='outcome_transfers') 
    receiver = models.ForeignKey(BankAccount, related_name='income_transfers') 
    when = models.DateTimeField() 
    total = models.FloatField() 
    comment = models.CharField(max_length=255) 

    objects = TransferQuerySet.as_manager() 

форма:

SendTransferForm = select2_modelform(MoneyTransfer) 

У меня есть две обычаи формы:

1. fields = 'receiver', 'comment', 'total' 
2. fields = 'sender', 'receiver', 'comment', 'total' 

Как реализовать это в коде?

ответ

0

Я решил не использовать типовую форму и создали простую форму с необходимыми виджетами:

class SendTransferForm(forms.Form): 
    sender = forms.ModelChoiceField(queryset=BankAccount.objects.all(), widget=Select2(), label="Счёт отправителя") 
    receiver = forms.ModelChoiceField(queryset=BankAccount.objects.all(), widget=Select2(), label="Счёт получателя") 
    total = forms.CharField(widget=forms.TextInput(attrs={'class': 'select2fake'}), label="Сумма") 
    comment = forms.CharField(widget=forms.TextInput(attrs={'class': 'select2fake'}), label="Комментарий") 
1

Вы можете создать две формы класса

class FirstForm(ModelForm): 
    class META: 
     model = models.MoneyTransfer 
     fields = ['receiver', 'comment', 'total'] 

, а затем:

class SecondForm(ModelForm): 
    class META: 
     model = models.MoneyTransfer 
     fields = ['sender', 'receiver', 'comment', 'total'] 
+0

это нормально, но я использую пакет django_easyselect и нуждаюсь в решении для него –

Смежные вопросы