У меня есть модель TransactionType
, и я реализовал метод viewset для создания типа транзакции, как показано ниже.В настоящее время я могу публиковать только отдельные элементы credit_account или debit_account, как показано в этой полезной нагрузке:
{"name":"Repair and Maintenance","credit_account":16,"debit_account":38}
Я бы отправил несколько credit_accounts и debit_accounts таким образом, чтобы моя полезная нагрузка выглядела примерно так:
{"name":"Repair and Maintenance","credit_account":[16,4,5],"debit_account":[38,7]}
Какой эффективный способ сделать это?
class TransactionType(models.Model):
name = models.CharField(max_length=255)
organization = models.IntegerField(null=True, blank=False)
credit_account = models.ManyToManyField(Account,related_name='credit_account', verbose_name="Account to Credit")
debit_account = models.ManyToManyField(Account,related_name='debit_account',verbose_name="Account to Debit")
def __str__(self):
return '{}'.format(self.name)
метод viewset
def create(self, request, format=None):
name = request.data['name']
try:
trans_type_obj = TransactionType.objects.create(name=name,
credit_account=Account.objects.get(id=request.data['credit_account'
]),
debit_account=Account.objects.get(id=request.data['debit_account'
]), organization=get_auth(request))
serializer = CreateTransactionTypeSerializer(trans_type_obj)
except Exception, e:
raise e
return Response(data=serializer.data,
status=status.HTTP_201_CREATED)