gpt4 book ai didi

python - “AutoField”对象没有属性 'remote_field'

转载 作者:行者123 更新时间:2023-12-01 02:32:43 26 4
gpt4 key购买 nike

我在 Django 1.8 中遇到一个奇怪的错误:

'AutoField' object has no attribute 'remote_field'

我有一个像这样的模型:

from django.db import models
from django.utils import timezone


class Event(models.Model):
product_type = models.CharField(max_length=250, null=False, blank=False)
received_time = models.DateTimeField(editable=False)
source_json = models.TextField()
event_id = models.CharField(max_length=250, null=False, blank=False)

# https://stackoverflow.com/questions/1737017/django-auto-now-and-auto-now-add
def save(self, *args, **kwargs):
if not self.id:
self.received_time = timezone.now()
return super(Event, self).save(*args, **kwargs)

@classmethod
def event_id_is_already_saved(cls, event_id_in_question):
items_found = cls.objects.filter(event_id=event_id_in_question)
if items_found:
return True
return False

观看次数:

import json

from django.http import HttpResponse
from rest_framework import viewsets

from events.utils.elastic_db_utils import get_elastic_exact_search_from_query_dictionary
from events.serializers import EventSerializer
from events.models import Event


def list_events(request):
all_events = Event.objects.all()
serialized = [EventSerializer(event) for event in all_events]
return HttpResponse(json.dumps(serialized))


class EventViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows users to be viewed or edited.
"""
queryset = Event.objects.all().order_by('-received_time')
serializer_class = EventSerializer

网址:

from django.conf.urls import url, include
from rest_framework import routers

from . import views

router = routers.DefaultRouter()
router.register(r'events', views.EventViewSet)


urlpatterns = [
url(r"^$", views.search_elastic_db, name='search-elastic-db'),
url(r"^events", views.list_events, name='list-events'),
url(r'^api/', include(router.urls)),
]

我的 View 集和 ^events 端点都不起作用,都出现相同的错误。您可以在 shell 中看到我的模型没有任何问题:

In [1]: from events.models import Event

In [2]: Event.objects.all()
Out[2]: [<Event: Event object>, <Event: Event object>, <Event: Event object>, <Event: Event object>, <Event: Event object>, <Event: Event object>, <Event: Event object>, <Event: Event object>, <Event: Event object>, <Event: Event object>, <Event: Event object>, <Event: Event object>, <Event: Event object>, <Event: Event object>, <Event: Event object>, <Event: Event object>, <Event: Event object>, <Event: Event object>, <Event: Event object>, <Event: Event object>]

最佳答案

我认为您无法从您提供的代码中推断出确切的原因,但根据错误消息,您似乎在其他地方(可能在第三方库中)使用了编写的代码对于较新版本的 Django。 remote_field 属性已添加到 Django v1.9 中的 Field,如所述 in the release notes 。 (这个属性显然是absent in v1.8。)

您的选择是:

  1. 将您的项目升级到更新的 Django 版本。
  2. 向后移植第三方库,将有问题的 Field 更改为使用 rel,并重写任何其他不兼容的代码。
  3. 将第三方库替换为支持 Django v1.8 的其他库。

(我推荐第一个选项,因为 Django 版本之间的升级是 well-documented 。)

关于python - “AutoField”对象没有属性 'remote_field',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46615174/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com