Python 无法发布到DRF modelviewset-请求。数据立即清空
我在django模型前面设置了一个rest端点,这让我觉得是绝对最小的,但我不能从可浏览的API发布到它 在Python 无法发布到DRF modelviewset-请求。数据立即清空,python,django,django-rest-framework,Python,Django,Django Rest Framework,我在django模型前面设置了一个rest端点,这让我觉得是绝对最小的,但我不能从可浏览的API发布到它 在djangorestframework==3.3.0上,所有到/api/transactions/的帖子都被拒绝 型号.py class TransactionQuerySet(models.QuerySet): ... class Transaction(models.Model): objects = TransactionQuerySet.as_manager()
djangorestframework==3.3.0
上,所有到/api/transactions/
的帖子都被拒绝
型号.py
class TransactionQuerySet(models.QuerySet):
...
class Transaction(models.Model):
objects = TransactionQuerySet.as_manager()
id = models.UUIDField(primary_key=True,
editable=False,
default=uuid4,
unique=True)
description = models.CharField(max_length=120)
timestamp = models.DateTimeField(default=get_timestamp,
editable=False)
amount = models.DecimalField(max_digits=8, decimal_places=2)
def __unicode__(self):
return '{0} ({1})'.format(self.description,
to_decimal(self.amount))
class Meta:
ordering = ['-timestamp']
class TransactionSerializer(serializers.ModelSerializer):
class Meta:
model = Transaction
exclude = ()
class TransactionViewSet(viewsets.ModelViewSet):
queryset = Transaction.objects.all()
serializer_class = TransactionSerializer
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^api/api-auth/', include('rest_framework.urls', namespace='rest_framework')),
url(r'^api/', include('tracking.urls')),
]
序列化程序.py
class TransactionQuerySet(models.QuerySet):
...
class Transaction(models.Model):
objects = TransactionQuerySet.as_manager()
id = models.UUIDField(primary_key=True,
editable=False,
default=uuid4,
unique=True)
description = models.CharField(max_length=120)
timestamp = models.DateTimeField(default=get_timestamp,
editable=False)
amount = models.DecimalField(max_digits=8, decimal_places=2)
def __unicode__(self):
return '{0} ({1})'.format(self.description,
to_decimal(self.amount))
class Meta:
ordering = ['-timestamp']
class TransactionSerializer(serializers.ModelSerializer):
class Meta:
model = Transaction
exclude = ()
class TransactionViewSet(viewsets.ModelViewSet):
queryset = Transaction.objects.all()
serializer_class = TransactionSerializer
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^api/api-auth/', include('rest_framework.urls', namespace='rest_framework')),
url(r'^api/', include('tracking.urls')),
]
视图.py
class TransactionQuerySet(models.QuerySet):
...
class Transaction(models.Model):
objects = TransactionQuerySet.as_manager()
id = models.UUIDField(primary_key=True,
editable=False,
default=uuid4,
unique=True)
description = models.CharField(max_length=120)
timestamp = models.DateTimeField(default=get_timestamp,
editable=False)
amount = models.DecimalField(max_digits=8, decimal_places=2)
def __unicode__(self):
return '{0} ({1})'.format(self.description,
to_decimal(self.amount))
class Meta:
ordering = ['-timestamp']
class TransactionSerializer(serializers.ModelSerializer):
class Meta:
model = Transaction
exclude = ()
class TransactionViewSet(viewsets.ModelViewSet):
queryset = Transaction.objects.all()
serializer_class = TransactionSerializer
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^api/api-auth/', include('rest_framework.urls', namespace='rest_framework')),
url(r'^api/', include('tracking.urls')),
]
跟踪.url
from rest_framework.routers import DefaultRouter
from django.conf.urls import url
import views
router = DefaultRouter()
router.register(r'transactions', views.TransactionViewSet)
urlpatterns = router.urls
url.py
class TransactionQuerySet(models.QuerySet):
...
class Transaction(models.Model):
objects = TransactionQuerySet.as_manager()
id = models.UUIDField(primary_key=True,
editable=False,
default=uuid4,
unique=True)
description = models.CharField(max_length=120)
timestamp = models.DateTimeField(default=get_timestamp,
editable=False)
amount = models.DecimalField(max_digits=8, decimal_places=2)
def __unicode__(self):
return '{0} ({1})'.format(self.description,
to_decimal(self.amount))
class Meta:
ordering = ['-timestamp']
class TransactionSerializer(serializers.ModelSerializer):
class Meta:
model = Transaction
exclude = ()
class TransactionViewSet(viewsets.ModelViewSet):
queryset = Transaction.objects.all()
serializer_class = TransactionSerializer
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^api/api-auth/', include('rest_framework.urls', namespace='rest_framework')),
url(r'^api/', include('tracking.urls')),
]
提交表单会得到以下响应
HTTP 400 Bad Request
Content-Type: application/json
Vary: Accept
Allow: GET, POST, HEAD, OPTIONS
{
"amount": [
"This field is required."
],
"description": [
"This field is required."
]
}
我缺少什么吗?我可以在禁用身份验证的情况下发布到端点。显然,这与DRF中的