我正在使用Python3.5和Django1.9开发django Web服务。
我定义了类似下面的模型:
from django.db import models
from django.utils import timezone
class URLCategory(models.Model):
url = models.CharField(max_length=200, null=True)
class Post(models.Model):
title = models.CharField(max_length=200)
content = models.TextField(null=True)
site = models.ForeignKey(URLCategory, null=True) # site 라는 요소(프로퍼티)는 URLCategories 라는 클래스(모델)을 외래키로(MANY-TO-ONE) 가리킨다”이다.
created_date = models.DateTimeField(blank=True, null=True)
crawl_date = models.DateTimeField(blank=True, null=True)
num_of_comments = models.PositiveSmallIntegerField(default=0, null=True)
def save(self):
self.crawl_date = timezone.now()
super().save()
def __str__(self):
return self.title
当我尝试做类似下面的事情的时候,
url_category = URLCategory("http://example.org")
post = Post(title="Title", created_date="06/29/2016", site=url_category)
post.save()
在post.save()
发生错误:
self = <django.db.models.fields.AutoField: id>, value = 'http://example.org'
def get_prep_value(self, value):
value = super(AutoField, self).get_prep_value(value)
if value is None:
return None
> return int(value)
E ValueError: invalid literal for int() with base 10: "http://example.org"
../venv/lib/python3.5/site-packages/django/db/models/fields/__init__.py:976: ValueError
我在invalid literal for int() with base 10
中使用关键字stackoverflow
查找相同的问题,但无法解决此问题。
需要你的帮助,谢谢。
答案 0 :(得分:0)
应该是
url_category = URLCategory.objects.create(url="http://example.org")
post = Post(title="Title", created_date="06/29/2016", site=url_category)
post.save()