Почему я не получаю ответ после успешного сохранения серийного номера с помощью ModelForm? - PullRequest
0 голосов
/ 23 мая 2019

Я отправляю почтовый запрос со сканера с отсканированными серийными номерами на сервер django.
{"serial_number": "70: B3: D5: A9: C8: 62", "bom": "2019/05/08"}

views.py

def camera_register(request):

    form = forms.RegisterCamerasForm(data=request.POST)
    if form.is_valid():
        instances = form.save(commit=False)
        # instances.serial_number = instances.serial_number.lower()
        instances.last_sighting_ip = request.META.get('REMOTE_ADDR')
        instances.last_sighting_time = datetime.datetime.now()
        form.save()
        form.save_m2m()



        return JsonResponse(1, safe=False)
    else:
        return JsonResponse(form.errors, status=200)

forms.py

class RegisterCamerasForm(forms.ModelForm):
    def clean(self):
        super().clean()

    class Meta:
        fields = '__all__'
        exclude = ['group']
        model = camera_models.Camera

models.py

class Camera(TimeStampedModel):
    public_identifier = models.UUIDField(unique=True,
                                         default=uuid.uuid4,
                                         editable=False)

    serial_number = models.CharField(max_length=100,
                                     unique=True,
                                     null=True)

    name = models.CharField(max_length=50, blank=True, null=True)

    group = models.ForeignKey('CameraGroup',
                              on_delete=models.SET_NULL,
                              null=True,
                              related_name='cameras',
                              related_query_name='cameras')
    # last seen at ip
    last_sighting_ip = models.CharField(max_length=50, blank=True, null=True)
    last_sighting_time = models.DateTimeField(null=True, blank=True)

    objects = CameraQuerySet.as_manager()

    def __str__(self):
        return self.name or self.serial_number or str(self.public_identifier)

    def as_json(self):
        return {
            'serial_number': self.serial_number
        }

Я отправляю запрос и сохраняю его в базе данных, но я не получаю ответ, и мне нужно, чтобы я мог сделать pytest и объединить его для разработки. Я попытался сохранить его с помощью form.save () form.save_m2m (), так как я изменяю некоторые данные. Я добавляю время и IP-адрес. (Нужно делать все строчными, но по одному разу) Когда я не сохраняю его с помощью form.save (), я получаю ответ, поэтому это означает, что мои данные каким-то образом недействительны, но я не могу понять, как именно.

Я отправляю запрос через клиент Restlet, что-то похожее на Postman, и если я не выполняю запрос, он продолжается до бесконечности ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...