Tastypie Resource post request not completing successfully

Я пытаюсь создать tastypie resurce для размещения часового пояса и валюты в таблице DB. Я получаю следующий ответ об ошибке:

error: "The 'timezone' field has no data and doesn't allow a default or null value."

Мои модели Django:

class Currency(models.Model):
    currency = models.CharField(max_length=200)
    iso = models.CharField(max_length=3, unique=True)
    created      = models.DateTimeField(auto_now=True, db_index=True)
    updated      = models.DateTimeField(auto_now=True, db_index=True)
    active  = models.BooleanField(db_index=True, default=False)

    class Meta:
        db_table = 'currency'

class Timezone(models.Model):
    timezone = models.CharField(max_length=200, unique=True)
    display_name = models.CharField(max_length=200)
    offset = models.DecimalField(max_digits=8, decimal_places=4)
    created      = models.DateTimeField(auto_now=True, db_index=True)
    updated      = models.DateTimeField(auto_now=True, db_index=True)
    class Meta:
        db_table = 'timezone'

class Account(models.Model):
    timezone = models.ForeignKey(Timezone, on_delete=models.PROTECT)
    currency = models.ForeignKey(Currency, on_delete=models.PROTECT)
    country_code = models.CharField(default=120)
    created      = models.DateTimeField(auto_now=True, db_index=True)
    updated      = models.DateTimeField(auto_now=True, db_index=True)
    class Meta:
        db_table = 'account'

А вот мои ресурсы Tastypie:

lass TimezoneResource(ModelResource):
    
    class Meta(CommonMeta):
        queryset = Timezone.objects.all()
        resource_name = 'timezone'
        allowed_methods = ['get', 'post', 'put', 'patch', 'delete']
        excludes = ['created', 'updated']
        filtering = {
            'timezone':ALL,         
        }

class CurrencyResource(ModelResource):
    
    class Meta(CommonMeta):
        queryset = Currency.objects.all()
        resource_name = 'currency'
        allowed_methods = ['get', 'post', 'put', 'patch', 'delete']
        excludes = ['created', 'updated']
        filtering = {
            'currency':ALL,         
        }


class ManageTimezoneAndCurrency(ModelResource):
    timezone = fields.ForeignKey(TimezoneResource, 'timezone', full=True)
    currency = fields.ForeignKey(CurrencyResource, 'currency', full=True)
    class Meta(CommonMeta):
        queryset = Account.objects.all()
        always_return_data = True
        resource_name = 'manage-timezone-currency'
        allowed_methods = ['get', 'post', 'put', 'patch', 'delete']
        excludes = ['created', 'updated']
        filtering = {
            'timezone': ALL,
            'currency': ALL,    
        }

А вот как я делаю запрос, используя React Axios:

const timezoneAndCurrencyRequest = {
                method: 'POST',
                url: generateUrl('config', 'manage-timezone-currency'),
                data: {
                        timezone_id: this.state.timezoneId,
                        currency_id: this.state.currencyId,
                 },
                withCredentials: true,
                headers: {
                    'Content-Type': 'application/json',
                },
            };

const timezoneAndCurrencyResponse = await Axios(timezoneAndCurrencyRequest);

                if (timezoneAndCurrencyResponse.status !== 201) {
                    throw new Error('Status not 201');
                }

Когда я делаю запрос на почту, я получаю ответ с ошибкой, я не знаю, может я что-то упускаю при создании запроса.

Любое руководство было бы замечательно.

Вернуться на верх