Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Can';t预填充Django数据库_Python_Django_Django Models_Backend - Fatal编程技术网

Python Can';t预填充Django数据库

Python Can';t预填充Django数据库,python,django,django-models,backend,Python,Django,Django Models,Backend,所以我一直在遵循Django 1.1的指南,但实际上我使用Django 2来预填充Django数据库,我使用的是SQLite数据库,这是我与Faker库的代码,但当我想在CMD中运行它时,它不会运行 import os os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'first_project.settings') import django django.setup() ## FAKE POPULATION SCRIPT: import

所以我一直在遵循Django 1.1的指南,但实际上我使用Django 2来预填充Django数据库,我使用的是SQLite数据库,这是我与Faker库的代码,但当我想在CMD中运行它时,它不会运行

import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'first_project.settings')

import django
django.setup()

## FAKE POPULATION SCRIPT:

import random
from first_app.models import AccessRecord,Webpage,Topic
from faker import Faker

# Creating a fake generator:
fakegen = Faker()
topics = 

['Search', 'Social', 'Marketplace', 'News', 'Games']
def add_topic():
    t = Topic.objects.get_or_create(top_name=random.choice(topics))[0]
    t.save()
    return t

def populate(N = 5):

for entry in range(N):

    # GET THE TOPIC FOR THE ENTRY:
    top = add_topic()

    # Create the fake data for that entry:
    fake_url = fakegen.url()
    fake_date = fakegen.date()
    fake_name = fakegen.company()

    # Create the new webpage entry:
    webpg = Webpage.objects.get_or_create(topic = top, url = fake_url, name = fake_name)[0]

    # Create a fake access record for that webpage
    acc_rec = AccessRecord.get_or_create(name = webpg, date = fake_date)[0]

    if __name__ == '__main__':
        print("Populating Script!")
        populate(20)
        print("Populating Complete!")
这是我在这个项目中唯一的应用程序的
models.py
文件

from django.db import models

# Create your models here.

class Topic(models.Model):
    top_name = models.CharField(max_length=264, unique=True)

    def __str__(self):
        return self.top_name

class Webpage(models.Model):
    topic = models.ForeignKey(Topic,on_delete=models.CASCADE)
    name = models.CharField(max_length=264,unique=True)
    url = models.URLField(unique=True)

    def __str__(self):
        return self.name

class AccessRecord(models.Model):
    name = models.ForeignKey(Webpage,on_delete=models.CASCADE)
    date = models.DateField

    def __str__(self):
        return str(self.date)
这就是我得到的错误

Populating script!
Traceback (most recent call last):
  File "populate_first_app.py", line 41, in <module>
    populate(20)
  File "populate_first_app.py", line 37, in populate
    acc_rec = AccessRecord.objects.get_or_create(name=webpg,date=fake_date)[0]
  File "C:\Users\divya\anaconda3\envs\MyDjangoEnv\lib\site-packages\django\db\m

odels\manager.py", line 82, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "C:\Users\divya\anaconda3\envs\MyDjangoEnv\lib\site-packages\django\db\m
odels\query.py", line 559, in get_or_create
  File "C:\Users\divya\anaconda3\envs\MyDjangoEnv\lib\site-packages\django\db\models\sql\query.py", line 1250, in build_filter
    lookups, parts, reffed_expression = self.solve_lookup_type(arg)
  File "C:\Users\divya\anaconda3\envs\MyDjangoEnv\lib\site-packages\django\db\models\sql\query.py", line 1087, in solve_lookup_type
    _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta())
  File "C:\Users\divya\anaconda3\envs\MyDjangoEnv\lib\site-packages\django\db\models\sql\query.py", line 1482, in names_to_path
    raise FieldError("Cannot resolve keyword '%s' into field. "
django.core.exceptions.FieldError: Cannot resolve keyword 'date' into field. Choices are: id, name, name_id
填充脚本!
回溯(最近一次呼叫最后一次):
文件“填充第一个应用程序.py”,第41行,在
填充(20)
文件“首先填充app.py”,第37行,填充
acc\u rec=AccessRecord.objects.get\u或\u create(name=webpg,date=false\u date)[0]
文件“C:\Users\divya\anaconda3\envs\mydjangenv\lib\site packages\django\db\m
“odels\manager.py”,第82行,在manager\u方法中
返回getattr(self.get_queryset(),name)(*args,**kwargs)
文件“C:\Users\divya\anaconda3\envs\mydjangenv\lib\site packages\django\db\m
“odels\query.py”,第559行,在get\u或\u create中
文件“C:\Users\divya\anaconda3\envs\mydjangenv\lib\site packages\django\db\models\sql\query.py”,第1250行,内置过滤器
查找,零件,引用表达式=self.solve\u查找类型(arg)
文件“C:\Users\divya\anaconda3\envs\MyDjangoEnv\lib\site packages\django\db\models\sql\query.py”,第1087行,在solve\u lookup\u类型中
_,字段,\,查找\u parts=self.names\u to\u path(查找\u拆分,self.get\u meta())
文件“C:\Users\divya\anaconda3\envs\mydjangenv\lib\site packages\django\db\models\sql\query.py”,第1482行,位于名称到路径中
raise FIELDRERROR(“无法将关键字“%s”解析为字段。”
django.core.exceptions.FieldError:无法将关键字“date”解析为字段。选项包括:id、名称、名称\u id

您在以下行中的错误:
date=models.DateField

date=models.DateField()上更正并进行迁移。

您在以下行中的错误:
date=models.DateField

date=models.DateField()上更正
并进行迁移。

是否检查了迁移?AccessRecord表在数据库中似乎不包含日期字段。还要检查数据库中AccessRecord表中的日期字段。是否检查了迁移?AccessRecord表在数据库中似乎不包含日期字段。还要检查数据库中的日期字段AccessRecord表中的ld。