Django 레코드
17473 단어 django
ManyToManyField 필드는 다음 예와 같이 레코드가 작성된 후에 업데이트되어야 합니다.
from django.db import models
class Publisher(models.Model):
name = models.CharField(max_length=30)
address = models.CharField(max_length=50)
city = models.CharField(max_length=60)
state_province = models.CharField(max_length=30)
country = models.CharField(max_length=50)
website = models.URLField()
def __unicode__(self):
return self.name
class Author(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=40)
email = models.EmailField()
def __unicode__(self):
return u'%s %s' % (self.first_name, self.last_name)
class Book(models.Model):
title = models.CharField(max_length=100)
authors = models.ManyToManyField(Author)
publisher = models.ForeignKey(Publisher)
publication_date = models.DateField()
def __unicode(self):
return title
#-*-coding:utf-8-*-
from books.models import *
def init_db():
dianzigongye = Publisher(name=u' ',
address=u' ',
city=u' ',
state_province=u' ',
country=u' ',
website=u'http:/www.phei.com.cn')
dianzigongye.save()
renminyoudian = Publisher(name=u' ',
address=u' ',
city=u' ',
state_province=u' ',
country=u' ',
website=u'http:/www.ptpress.com.cn')
renminyoudian.save()
boothby = Author.objects.create(first_name=u'William M',
last_name=u'Boothby',email='')
deitel = Author.objects.create(first_name=u'H M',
last_name=u'Deitel',email='')
liuwenhong = Author.objects.create(first_name=u' ',
last_name=u' ',email='')
bentley = Author.objects.create(first_name=u'Jon',
last_name=u'Bentley',email='')
huangqian = Author.objects.create(first_name=u' ',
last_name=u' ',email='')
zouxin = Author.objects.create(first_name=u' ',
last_name=u' ',email='')
bianchengzhimei = Book(publisher=dianzigongye,
publication_date = '2008-03-01')
bianchengzhimei.save()
bianchengzhimei.title = u' '
bianchengzhimei.authors = Author.objects.filter(first_name=' ',
last_name=' ')
bianchengzhimei.save()
bianchengzhuji = Book(publisher=renminyoudian,
publication_date = '2008-01-01')
bianchengzhuji.save()
bianchengzhuji.title = u' '
bianchengzhuji.authors = Author.objects.filter(first_name=u'Jon',
last_name=u'Bentley')
bianchengzhuji.authors.add(huangqian)
bianchengzhuji.save()
csharp = Book(title=u'Visual C# 2005 ( )',
publisher=dianzigongye,
publication_date = '2007-07-01')
csharp.save()
csharp = Book.objects.filter(
title=u'Visual C# 2005 ( )')
csharp[0].authors = Author.objects.filter(first_name=u'H M',
last_name=u'Deitel')
csharp[0].authors.add(liuwenhong)
csharp[0].save()
manifold = Book(publisher=renminyoudian,
publication_date = '2007-10-01')
manifold.save()
manifold.title = u' '
manifold.authors = [boothby]
manifold.save()
원인 참조MWI 로그:
네 개의 표를 만들었다.여기서 bookauthors표는 연관표로 데이터를 직접 삽입할 수 없으며 실제로는 BookAuthors라는 대상도 존재하지 않는다.따라서 이 데이터를 삽입하여 책과 author의 연결을 맺으려면 책의 실례를 꺼내서 책의 값을 부여해야 한다
2.django 데이터베이스 관련 설정 수정을 적용하는 가장 간단한 방법은'python manage.py shell'에서 시작된 명령행 터미널을 종료하고 다시 시작하는 것입니다.
3. django에서 모델을 통해 테이블을 만들 때 번역된 필드인 SQL 문장은 기본적으로NOT NULL이다. 만약에 프로그래밍할 때 한 필드를 비우면django가 데이터베이스에서 테이블을 만들 때''빈 문자열로 이 필드를 채워서 정말 비어 있는 것이 NULL이 되는 것을 방지한다.그러나 날짜, 시간, 숫자 필드는 빈 문자열을 받아들일 수 없기 때문에 비울 수 없습니다. 값을 부여해야 합니다.기본값을 빈 필드로 정의하려면 테이블 모델에서null=True로 정의해야 합니다.
class Book(models.Model):
title = models.CharField(max_length=100)
authors = models.ManyToManyField(Author)
publisher = models.ForeignKey(Publisher)
publication_date = models.DateField(null=True)
bianchengzhuji = Book(publisher=renminyoudian,publication_date = '2008-01-01')
bianchengzhuji.save()
4. 템플릿 파일을 편집할 때 메모장을 사용하지 않는 것이 좋다. 메모장 프로그램은 텍스트를utf-8 형식으로 저장할 때 파일 헤더에 세 바이트의 데이터 BOM을 추가하여 메모장 등 프로그램에 메모장을utf-8 인코딩 형식으로 읽어야 한다는 힌트를 주기 때문이다.그러나 세 개의 여분의 문자가django에서utf-8 파일을 처리할 때 디스플레이가 한 줄로 바뀝니다.UltraEdit 또는 Dreamweaver 등을 사용하면 utf-8 형식으로 저장할 때 BOM에 대한 옵션을 취소할 수 있습니다.
5. 문자 인코딩은 모두utf-8을 사용하는 것이 좋다. 프로그램 원본 파일의 인코딩 설정을 포함하지만 이에 국한되지 않는다(주석#-*-codingutf-8-*-설정을 통해).프로그램의 문자 상수 (u'xxx'를 통해);데이터베이스 데이터 저장 인코딩, mysql에서 아래 문장 설정(fromjxst051665의 블로그)을 통해)
Create DATABASE IF NOT EXISTS my_db default charset utf8 COLLATE utf8_general_ci;
6. 보기 함수에 url 하드코딩이 없거나 url 문자열 관련 변수를 사용하여 판단하지 마십시오. url 문자열 관련 변수가 보기 함수에 전달되면 함수에서 다른 일을 하지 마십시오. 마지막으로returnrendto_response 나오면 돼.url에 관한 일은 가능한 한 url 설정에서 완성하십시오.예:
BAD CODE
1 urlpatterns = patterns('',
2 # ...
3 ('^([^/]+)/([^/]+)/add/$', views.add_stage),
4 # ...
5 )
# app_label,model_name patterns url ,
def add_stage(request, app_label, model_name):
if app_label == 'auth' and model_name == 'user':
# do special-case code
else:
# do normal code
GOOD CODE
urlpatterns = patterns('',
# ...
('^auth/user/add/$', views.user_add_stage),
('^([^/]+)/([^/]+)/add/$', views.add_stage),
# ...
)
def add_stage(request, app_label, model_name):
# ...
def user_add_stage(request):
# ...
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django의 질문 및 답변 웹사이트환영 친구, 이것은 우리의 새로운 블로그입니다. 이 블로그에서는 , 과 같은 Question-n-Answer 웹사이트를 만들고 있습니다. 이 웹사이트는 회원가입 및 로그인이 가능합니다. 로그인 후 사용자는 사용자의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.