- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我尝试将网页保存到数据库,url 应该是唯一的。如果 url 已经存在,我只需要在网页类和搜索类之间创建关系。但问题是,即使数据库为空并且操作发生在 DoesNotExist 异常中,我也会不断收到此 IntegrityError。请帮我解决我的问题。
这是执行保存的 block views.py 代码。
websearch.startSearch(maxPage=2)
for result in websearch.searchResult:
try:
web = Webpage.objects.get(url=result)
searching.objects.create(webpage=web, keyword=keyword)
except Webpage.DoesNotExist:
web = Webpage.objects.create(url=result)
searching.objects.create(webpage=web, keyword=keyword)
这是网页和搜索模型
class Webpage(models.Model) :
"webpage from search result and client's websites"
domain = models.ForeignKey(Domain, blank=True, null=True)
webhosting = models.ForeignKey(WebHosting, blank=True, null=True)
url = models.URLField(max_length=250, blank=False, unique=True)
html_page = models.TextField(blank=True, null=True)
inspect_status = models.BooleanField(blank=True)
scam_status = models.BooleanField(blank=True)
report_status = models.BooleanField(blank=True)
access_status = models.BooleanField(blank=True)
whitelist_status = models.BooleanField(blank=True)
compare_to = models.ForeignKey('self', blank=True, null=True)
def __unicode__(self):
return self.url
class searching (models.Model):
'information on each searching activity'
keyword = models.ForeignKey(Keyword, blank=True, null=True)
token = models.ForeignKey(Token, blank=True, null=True)
webpages = models.ForeignKey(Webpage)
date = models.DateField(auto_now=True)
class comparison(models.Model):
'''comparing website to other websites with the same event and label'''
source = models.ForeignKey(Webpage, related_name='compare_source')
destination = models.ForeignKey(Webpage, related_name='compare_destination')
time = models.DateTimeField(auto_now=True)
fuzz_ratio = models.FloatField()
fuzz_partial_ratio = models.FloatField()
fuzz_token_sort_ratio = models.FloatField()
fuzz_token_set_ratio = models.FloatField()
difflib_ratio = models.FloatField()
difflib_quick_ratio = models.FloatField()
difflib_real_quick_ratio = models.FloatField()
levenshtein_ratio = models.FloatField()
levenshtein_seqratio = models.FloatField()
最佳答案
你不需要处理异常,你可以使用 get_or_create
内置函数。
websearch.startSearch(maxPage=2)
for result in websearch.searchResult:
webpage, created = Webpage.objects.get_or_create(url=result)
#webpage is a instance
#created is True is a new instance was created or False if it already existed.
还有,你打错了
searching.objects.create(webpage=web, keyword=keyword)
应该是
searching.objects.create(webpages=web, keyword=keyword)
Searching
对象有webpages
属性,不是网页,需要添加's'
关于python - 模型内部的 IntegrityError.Django 中的 DoesNotExist 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28185537/
是否有可能哄骗 Django 为 DoesNotExist 错误提供更多信息? 例如,真的如果他们能包含查询就好了……像这样: >>> Foo.objects.get(id="example_id")
我正在使用 Django 1.7。通常你可以在你的模型上捕获 DoesNotExist 异常; try: ... except model.DoesNotExist, den: ... 我
如果您能在点击搜索按钮时在另一个页面中查看数据,从而从数据库中接收数据,我将不胜感激。我收到的问题是 AttributeError。单击该按钮后 我试图研究类似的问题。 Views.py def ac
这个问题在这里已经有了答案: How to handle "matching query does not exist" when getting an object (3 个答案) 关闭 7 年前
我正在尝试创建一个单元测试来验证对象是否已被删除。 from django.utils import unittest def test_z_Kallie_can_delete_discussion_
我正在尝试在我的 Django Web 应用程序中激活社交登录,该应用程序来自此 GitHub repository 中的开源软件(所以我没有写);我遇到了这个众所周知的问题: DoesNotExis
从 git 仓库运行 Django 1.5.x。使用 south 来管理迁移。我有一个这样的模型: class Company(models.Model): name = models.Cha
我有一些关于 django exists() 和 DoesNotExist 异常的问题。 示例代码: id = 1 # first if User.objects.get(pk=id).exists(
我正试图捕获 Django。我在 Eclipse 上使用 Pydev。我写了一个简单的注册页面,但我无法开始工作。 Eclipse 提示 User.DoesNotExist 未定义。很可能,我错过了一
它并不总是这个代码块,但这是最新的。这似乎是随机的,有什么想法吗? try: u = User.objects.get(email__iexact=useremail) except User
我正在尝试通过基于相关模型的过滤来运行 filter() 查询,它会抛出 DoesNotExist 异常。 CourseMember.objects.filter(user__last_name__i
在 Django 中,我一直看到 DoesNotExist 被引发,就像在 db.models.fields.related.py 中一样。不是在 django.core.exceptions 中定义
我正在努力解决我的应用程序中的 DoesNotExist 错误。关键是我真的不明白为什么会抛出这个错误,因为我已经处理过了: import socket from django.core.except
我在 Django 1.5 网站上遇到了一个奇怪的异常: "TypeError: 'exceptions.AttributeError' object is not callable" 从本质上讲,
我在使用 django guardian 时遇到了一些问题。我定义了一个新闻模型 class News(models.Model): title = models.CharField(_('T
我正在尝试验证 ListView 不包含特定项目。这是我正在使用的代码: onData(allOf(is(instanceOf(Contact.class)), is(withContactItemN
我有一个 Django 模型的自定义管理器。我似乎无法在这里捕捉到 DoesNotExist 异常。我知道如何在模型中执行此操作,但在这里不起作用: class TaskManager(models.
为什么我创建的模型实例在之后直接从 celery 任务查询时没有找到?例如: # app.views model = Model.objects.create() # I create my l
我已经将 peewee 与 SQLite 一起使用了一段时间,现在我正在切换到带有 Postgres 的 SQLAlchemy,但我找不到等效的 DoesNotExist(参见示例) try:
我一直收到 has no attribute DoesNotExist 错误。 有什么想法吗? 到目前为止我试过: try: current_report = Report.o
我是一名优秀的程序员,十分优秀!