首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django管理站点在Djangae上出现错误

Django管理站点在Djangae上出现错误
EN

Stack Overflow用户
提问于 2018-03-10 07:29:21
回答 2查看 159关注 0票数 0

我有一个Django应用程序,它可以在google应用程序引擎上完美地工作,通过djangae使用数据存储。然而,管理站点抛出了一个错误:

代码语言:javascript
复制
NotSupportedError at /admin/auth/user/5629499534213120/change/

Cross-join where filters are not supported on the Datastore

此错误仅在尝试编辑默认的Django用户模型时发生。不确定为什么会发生这种情况。

我使用了默认的Django用户模型。(这是一个为非营利组织处理捐赠的应用程序)

models.py:

代码语言:javascript
复制
from django.db import models
from django.contrib.auth.models import User

# Create your models here.


class FoodSplashUser(models.Model):
    base_user = models.OneToOneField(User, on_delete=models.CASCADE)

    address = models.TextField(null=True)
    city = models.TextField(null=True)
    state = models.CharField(max_length=4, null=True)
    zip = models.CharField(max_length=10, null=True)

    def __str__(self):
        return str(self.base_user.username)


class Organization(models.Model):
    base_user = models.OneToOneField(User, on_delete=models.CASCADE)

    address = models.TextField(null=True)
    city = models.TextField(null=True)
    state = models.CharField(max_length=4, null=True)
    zip = models.CharField(max_length=10, null=True)

    description = models.TextField(null=True)
    image_url = models.URLField(null=True)

    def __str__(self):
        return str(self.base_user.username)


class DonationRequest(models.Model):
    organization = models.ForeignKey(Organization, on_delete=models.CASCADE)
    timestamp = models.DateTimeField(auto_now=True)
    request_type = models.TextField(null=True)
    description = models.TextField(null=True)

    def __str__(self):
        return str(self.organization.base_user.username) + " " + self.request_type


class DonationPromise(models.Model):
    user = models.ForeignKey(FoodSplashUser, on_delete=models.CASCADE)
    donation_request = models.ForeignKey(DonationRequest, on_delete=models.CASCADE)
    timestamp = models.DateTimeField(auto_now=True)
    verified = models.BooleanField(default=False)

    def __str__(self):
        return str(self.user.base_user.username) + " " + str(self.donation_request)

这个应用程序使用默认的Django管理界面,但我决定创建下面的类,以便以后编辑。

admin.py:

代码语言:javascript
复制
from django.contrib import admin
from . import models

# Register your models here.


class FoodSplashUserAdmin(admin.ModelAdmin):
    pass


class OrganizationAdmin(admin.ModelAdmin):
    pass


class DonationRequestAdmin(admin.ModelAdmin):
    pass


class DonationPromiseAdmin(admin.ModelAdmin):
    pass


admin.site.register(models.FoodSplashUser, FoodSplashUserAdmin)
admin.site.register(models.Organization, OrganizationAdmin)
admin.site.register(models.DonationRequest, DonationPromiseAdmin)
admin.site.register(models.DonationPromise, DonationPromiseAdmin)
EN

回答 2

Stack Overflow用户

发布于 2018-03-11 09:58:12

这可能是一个单独的错误,但是:

代码语言:javascript
复制
admin.site.register(models.DonationRequest, DonationPromiseAdmin)
admin.site.register(models.DonationPromise, DonationPromiseAdmin)

第一个不应该是:DonationRequestAdmin吗?

票数 0
EN

Stack Overflow用户

发布于 2018-03-15 18:25:50

NotSupportedError指示您的代码执行App Engine数据存储不可能执行的操作。并不是所有的Django ORM特性都可以在Datastore所在的非关系数据库中使用。您正在尝试创建一个具有某些关系的实体,这会导致错误。使用Gauth进行身份验证和用户管理可能是一个好主意,如Djangae文档中所述。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49203689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档