我正在建立一个使URL简短的服务。我有以下模型:
from django.db import models
class ShortURL(models.Model):
url = models.CharField(max_length = 50)
class LongURL(models.Model):
name = models.CharField(max_length = 100, null=True)
url_to_short = models.ForeignKey(ShortURL)
Run Code Online (Sandbox Code Playgroud)
我已经运行了以下命令:python manage.py migrate
如果打开解释器,请使用python manage.py shell并运行以下代码:
>>> from appshort.models import LongURL
>>> a = LongURL(name = 'hello_long_link')
>>> a.save()
Run Code Online (Sandbox Code Playgroud)
然后我得到错误:
django.db.utils.IntegrityError: NOT NULL constraint failed: appshort_longurl.url_to_short_id
我做错什么了?
class LongURL(models.Model):
name = models.CharField(max_length = 100, null=True)
url_to_short = models.ForeignKey(ShortURL)
Run Code Online (Sandbox Code Playgroud)
设置方式,url_to_short外键不是可选的。因此,当您尝试保存时:
>>> a = LongURL(name = 'hello_long_link')
>>> a.save()
Run Code Online (Sandbox Code Playgroud)
Django试图告诉您您没有url_to_short在a模型实例上提供关系。
您需要
LongURL实例时提供ShortURL关系url_to_short关系设为可选null=True, blank=True。 | 归档时间: |
|
| 查看次数: |
13305 次 |
| 最近记录: |