Основываясь на следующем Serializer, Mixin и View, я могу успешно получить данные JSON через запрос GET (см. Ниже), но я получаю "AttributeError: 'NoneType' object has no attribute 'request'"
при попытке выполните JSON POST через Django Restframework, и я не могу понять, почему. Пожалуйста помоги. Я также добавил модель TransactionDateTime и запрос POST JSON, который дает мне ошибку. Я использую Postman для отправки запроса. Заранее спасибо. Я думаю, что моя проблема с serializers.DateTimeField, потому что я успешно вставить данные через Джанго оболочку, используя нижеDjango RestFramework Error Associate с Serializer DateTimeField по запросу POST
my_date = datetime.strptime('2015-01-28 05:30:00', '%Y-%m-%d %H:%M:%S')
Пожалуйста, смотрите ниже сериалайзер, успешный JSON, который был возвращен через GET запрос, Mixin, Вид, Модель и запрос POSt JSON, который генерирует ошибку.
Serializer
class SimpleSerializer4(BulkSerializerMixin, ModelSerializer):
user = serializers.SerializerMethodField()
start_dt = serializers.DateTimeField(format='%Y-%m-%d %H:%M:%S', input_formats=['%Y-%m-%d %H:%M:%S'])
def get_user(self, obj):
test_me = self.context.get('request')
return test_me
class Meta(object):
model = TransactionDateTime
list_serializer_class = BulkListSerializer
fields = ('pk','start_dt', 'user')
Успешные данные в формате JSON через GET запрос
[
{
"pk": 1,
"start_dt": "2015-01-28 03:00:00",
"user": "cdoe"
},
{
"pk": 2,
"start_dt": "2015-01-28 05:30:00",
"user": "cdoe"
}
]
Мнения и Mixin
class DateTimeMixin(object):
serializer_class = SimpleSerializer4
permission_classes = (permissions.IsAuthenticated,)
class DateTimeViewSet(DateTimeMixin, generics.BulkModelViewSet):
def get_queryset(self):
num = self.kwargs['dt_rm']
num2 = self.kwargs['id']
r1 = Room.objects.get(id = num)
s1 = Schedule.objects.get(pk=num2)
u= self.request.user.pk
usr = User.objects.get(pk=u)
if(s1.user.username == usr.username):
queryset = r1.transactiondatetime_set.all()
return queryset
else: raise Http404("User does not exist")
def get_serializer_context(self):
num = self.kwargs['id']
s1 = Schedule.objects.get(pk=num)
var = s1.user.username
context = super(DateTimeViewSet, self).get_serializer_context()
return {'request' : var}
TransactionDateTime модель
class TransactionDateTime(models.Model):
room = models.ForeignKey(Room, on_delete = models.CASCADE)
start_dt = models.DateTimeField('start_dateTime')
end_dt = models.DateTimeField('end_dateTime', blank=True, null=True)
def __str__(self):
return str(self.start_dt)
JSON POST запрос, который дает мне ошибку
[
{
"start_dt": "2015-01-28 03:00:00"
},
{
"start_dt": "2015-01-28 02:00:00"
}
]