Đã giải quyết: %22DO_NOTHING%22 không được xác định django

Contrib.auth

Không có hành vi nào được xác định cho bộ lọc %22DO_NOTHING%22 trong Django. Điều này có thể dẫn đến kết quả không mong muốn nếu được sử dụng trong mẫu hoặc dạng xem.

.db.utils.ProgrammingError: %22DO_NOTHING%22 is not defined

I'm trying to run a migration in Django, but I get the following error:
<code>django.db.utils.ProgrammingError: %22DO_NOTHING%22 is not defined</code>
The migration file looks like this:
<code># -*- coding: utf-8 -*-
# Generated by Django 1.11 on 2017-08-18 13:16
from __future__ import unicode_literals

    from django.db import migrations, models

    class Migration(migrations.Migration):

        dependencies = [("myapp", "0004_auto_20170818_1255")]

        operations = [migrations.AlterField(model_name="mymodel", name="field1", field=models.ForeignKey(null=True, on_delete=models.DO_NOTHING, related_name="+", to="myapp"))]  # noqa</code>
The model it's referring to looks like this (the field in question is <code>field1</code>) : 
<code>class MyModel(models.Model):

    field1 = models.... # other fields here</code>  # noqa

Lỗi là nói rằng DO_NOTHING tùy chọn không được xác định – điều này có thể là do nó không được hỗ trợ trong phiên bản Django mà bạn đang sử dụng. Để khắc phục điều này, bạn có thể cập nhật Django lên phiên bản mới hơn hoặc thay đổi on_delete tùy chọn cho một cái gì đó khác được hỗ trợ.

Giải quyết Django 'Trình xử lý' không được xác định

Lỗi này là do câu lệnh nhập bị thiếu trong dự án Django của bạn. Bạn có thể khắc phục điều này bằng cách thêm dòng sau vào phần nhập của dự án:

từ django.contrib.auth.models nhập Người dùng

Nếu bạn đang sử dụng thư viện xác thực của bên thứ ba, bạn cũng có thể cần thêm quá trình nhập của thư viện đó.

bài viết liên quan:

Để lại một bình luận