Как использовать ListField в django models.py при использовании DJONGO в качестве движка в settings.py - PullRequest
1 голос
/ 13 июня 2019

мои данные json выглядят так

{
    "Batch Year": 1998 - 1999,
    "Roll Nos": ["36", "125"],
    "Student Names": ["xyz", "xxy"],
    "Project Name": "IMPLEMENTATIONOF NETWORK SECURITY BY VIRTUAL PRIVATE NETWORK (VPN)",
    "Project Supervisor": "abc",
    "External Supervisor": "aaa",
    "Co-Supervisor": "None",
    "Project Id": 155
}

для этих данных я определил ListFields в models.py для Roll Nos и Student Names, но когда я использовал административную панель для добавления данных в свою базу данных, я столкнулся с ошибкой:

"Значение исключения: Бесформенное поле нельзя изменить из Django Admin. "

settings.py

DATABASES = {
    'default': {
        'ENGINE': 'djongo',
        'NAME': 'fypcis_db',
    }

models.py

from __future__ import unicode_literals
from djongo import models
import djongo

class students(models.Model):
    batch_year = models.IntegerField(db_column='Batch Year')  # Field name made lowercase.
    roll_nos = djongo.models.ListField(db_column='Roll Nos',default=True)  # Field name made lowercase.
    student_name = djongo.models.ListField(db_column='Student Names',default=True)  # Field name made lowercase.
    project_name = models.CharField(max_length=250, db_column='Project Name',default=True)  # Field name made lowercase.
    project_supervisor = models.CharField(max_length=250, db_column='Project Supervisor',default=True)  # Field name made lowercase.
    external_supervisor = models.CharField(max_length=250,db_column='External Supervisor',default=True)  # Field name made lowercase.
    co_supervisor = models.CharField(max_length=250,db_column='Co-Supervisor',default=True)  # Field name made lowercase.
    project_id = models.IntegerField(db_column='Project Id')  # Field name made lowercase.

, пожалуйста, помогите мне решить эту ошибку. Заранее спасибо

Я использую Django 2.2 и Djongo в качестве Engine

1 Ответ

0 голосов
/ 05 июля 2019

https://nesdis.github.io/djongo/using-django-with-objectid-field/ ArrayModelField и ArrayReferenceField требуют, чтобы все модели в списке были одного типа.MongoDB позволяет сохранять произвольные данные внутри встроенного массива.ListField полезен в таких случаях.Поле списка не может быть представлено в Django Admin, хотя и может использоваться только в скрипте Python.

...