Сохранение файла Django в sqlite3 db и поиск - PullRequest
0 голосов
/ 11 июня 2018

Ниже приведена модель моего устройства:

class Device(models.Model):
    device_type         = models.ForeignKey(DeviceType,to_field='device_type')
    serial_number       = models.CharField(max_length=200,unique=True)
    in_use_by           = models.ForeignKey(User,to_field='username')
    brand               = models.CharField(max_length=200,default="-", null=False)
    model               = models.CharField(max_length=200,default="-", null=False)
    type_number         = models.CharField(max_length=200,blank=True,null=True, default = None)
    mac_address         = models.CharField(max_length=200,blank=True,null=True, default = None)
    invoice             = models.FileField(upload_to='', null=True)

Здесь поле счета не используется для меня на моем веб-сайте, а для меня как администратора.Что я в основном пытаюсь сделать, так это то, что если запрос устройства будет принят, я загружу счет устройства в мою базу данных sqlite с помощью панели администратора.Я новичок в Django и, следовательно, нуждаюсь в помощи для этой цели.Также я буду загружать файлы только через админку django.Как мне этого добиться?Что я должен написать при загрузке в параметр, чтобы файл сохранялся в базе данных?

1 Ответ

0 голосов
/ 11 июня 2018

Вам необходимо настроить вашего Admin с полями, которые вы хотите отредактировать.

In admin.py :

class DeviceAdmin(admin.ModelAdmin):
    fields = ('device_type', 'invoice', ..)

admin.site.register(Device, DeviceAdmin)

Поле администратора Djangoссылка

РЕДАКТИРОВАТЬ :

upload_to параметр - это путь, по которому необходимо сохранить файл.Обычно это путь MEDIA_ROOT, настроенный в настройках Django.

models.FileField(upload_to=settings.MEDIA_ROOT, null=True)

Для обслуживания во время разработки:

urlpatterns = [
    # ... the rest of your URLconf goes here ...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

См.

В БД будет храниться только URL файла.

...