form = StationFirmwareForm(req.POST, req.FILES)
if form.is_valid():
res = form.save()
return JsonResponse({'res': {"id": res.id}})
форма:
class StationFirmwareForm(forms.ModelForm):
class Meta:
model = Station_firmware
fields = ('firmware', 'model_id')
модель:
class Station_firmware(models.Model):
model_id = models.ForeignKey(Station_model, default="", db_column='model_id', on_delete=models.CASCADE)
firmware = models.FileField(upload_to='firmware/', default="")
Station_firmware.objects.values()
// output: {model_id_Id: 3, firmware: 'askf'}
Почему черт возьми так?
что именно не нравится?
Station_firmware.objects.values() // output: {model_id_id: 3, firmware: 'askf'}
Если про поле model_id_Id, то поле называется model_id, а так как это ФК, то в бд это поле называется название_id
Когда поле было model без db column, то объекты отдавались с полем model_id, но добавляться не хотели с такой формой: model_id: 1 firmware: (binary)
А зачем в название поля добавлен _id? Скорее всего _id лучше удалить
Ну как бы хорошо что джанго добавляет префикс fk полям, если убрать _id у самого поля: model = models.ForeignKey(Station_model, default="", on_delete=models.CASCADE) и форма будет такая: class Meta: model = Station_firmware fields = ('firmware', 'model') То объекты будут отдваться с названием поля с префиксом _id: {.. model_id: 2} Но отправлять ты должен форму с полем model, без префикса!!!!! Получаешь данные с таким полем, а добавляешь с другим!!!! роазве не глупо???????
Обсуждают сегодня