小编chi*_*sky的帖子

Django代理模型权限不会出现

我为我的应用程序扩展了Django管理站点,允许非员工/超级用户访问.这工作得很好.

我为现有模型创建了一个代理模型,并将其注册到我的管理站点,但是,对于非员工用户,它不会出现.从我阅读的文档中,我的理解是代理模型获得了自己的权限.我检查过,这些没有出现在可用权限列表中.

这是我的代码,以防它有用:

正常模型

class Engagement(models.Model):
    eng_type = models.CharField(max_length=5)
    environment = models.CharField(max_length=8)    
    is_scoped = models.BooleanField()    

    class Meta:
        ordering = ['eng_type', 'environment']
        app_label = 'myapp'
Run Code Online (Sandbox Code Playgroud)

代理模型

class NewRequests(Engagement):
    class Meta:
        proxy = True
        app_label = 'myapp'
        verbose_name = 'New Request'
        verbose_name_plural = 'New Requests'
Run Code Online (Sandbox Code Playgroud)

模特管理员

class NewRequestsAdmin(ModelAdmin):
pass

def queryset(self, request):
    return self.model.objects.filter(is_scoped=0)
Run Code Online (Sandbox Code Playgroud)

自定义管理员注册

myapps_admin_site.register(NewRequests, NewRequestsAdmin)
Run Code Online (Sandbox Code Playgroud)

我一直在和南方管理我的数据库.根据这篇文章,您必须按照它指向用户的说明稍微篡改它.这是一次失败.我的数据库中没有很多信息,因此我取消注释南并运行常规syncdb以排除South.不幸的是,这仍然没有用,我不知所措.任何帮助表示赞赏.

编辑

这是在Django 1.4上

django django-models django-admin django-south python-2.7

10
推荐指数
3
解决办法
4791
查看次数

多个模型上的 Alembic 迁移

我正在尝试--autogenerate使用 Alembic 为两个模型创建一个修订版,但收到重复的表键错误。是否需要指定模式?如果可以,如何设置?我读过的文档说要使用__table_args__ = {'schema': 'somename'},但这并没有帮助。非常感谢任何提示或建议。

我目前的设置是:

基础文件

from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
Run Code Online (Sandbox Code Playgroud)

工作区.py

from sqlalchemy import Column, Integer, String
from base import Base

class WorkspaceModel(Base):

    __tablename__ = 'workspaces'

    id = Column(Integer, primary_key=True)
    name = Column(String)
Run Code Online (Sandbox Code Playgroud)

主机.py

from sqlalchemy import Column, Integer, String
from base import Base

class HostModel(Base):

    __tablename__ = 'hosts'

    id = Column(Integer, primary_key=true)
    ip = Column(String)
Run Code Online (Sandbox Code Playgroud)

alembic/env.py

from host import HostModel
from workspace import WorkspaceModel
target_metadata = [HostModel.metadata, WorkspaceModel.metadata]
Run Code Online (Sandbox Code Playgroud)

错误

ValueError: …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy alembic

8
推荐指数
1
解决办法
2675
查看次数

模型管理器查询集未过滤

我有一个代理模型,其查询集是其父项的子集.但是,当我调用它时,会返回父对象.

模特经理:

class NewRequestsManager(models.Manager):        
    def get_queryset(self):
        return super(NewRequestsManager, self).get_queryset().filter(is_scoped=0)
Run Code Online (Sandbox Code Playgroud)

代理模型:

class NewRequests(Engagement):
    objects = NewRequestsManager()

    class Meta:
        proxy = True
        app_label = 'myapp'
        verbose_name = 'New Request'
Run Code Online (Sandbox Code Playgroud)

查看:

def list(request):
    new_requests = NewRequests.objects.all()
    c = RequestContext(request, {
            'cl': new_requests,
    })
    t = loader.get_template('queue.html')
    return HttpResponse(t.render(c))
Run Code Online (Sandbox Code Playgroud)

任何帮助深表感谢.我不确定我在这里缺少什么.

django django-models django-views

7
推荐指数
2
解决办法
1792
查看次数

如果有人知道我的Github用户名和电子邮件,他们可以提交或推送我的项目文件吗?

我是Git的新手.我打开了Github帐户,创建了一个公共存储库,并设置了用户名和电子邮件,如Github的教程所示.因此,如果有人知道我的用户名和电子邮件,他们可以提交或推送我的公共存储库中的文件吗?我该如何保护文件?SVN具有用于提交文件的用户名密码.我怎样才能做到这一点?

git github git-svn

3
推荐指数
1
解决办法
498
查看次数

Django 错误:无效的列名“id”

我很难理解为什么我的一个查询失败了。

我正在使用 pyodbc 连接到 Django 应用程序上的 SQL Server 数据库。我的所有其他查询都工作正常,除了一个。以下是相关信息:

模型

class ReportTemplate(models.Model):
    name = models.TextField(db_column='Name', blank=True)
    template = models.TextField(db_column='Template', blank=True)

    class Meta:
        db_table = 'ReportTemplateTbl'
Run Code Online (Sandbox Code Playgroud)

功能

我在下面的示例中使用了“抽象”,因为它是一个已知值。

get_initial(self):
    my_template = ReportTemplate.objects.get(name='Abstract')
    return {'abstract': my_template.template}
Run Code Online (Sandbox Code Playgroud)

错误

当应用程序通过这个函数运行时,它返回以下错误:

('42S22', "[42S22] [Microsoft][ODBC SQL Server 驱动程序][SQL Server]无效的列名 'id'。(207) (SQLExecDirectW); [42000] [Microsoft][ODBC SQL Server 驱动程序][SQL服务器]无法准备语句。(8180)")

变量信息似乎表明 pyodb 正在尝试搜索

u'SELECT [ReportTemplateTbl].[id] , [ReportTemplateTbl].[Name], [ReportTemplateTbl].[Template] FROM [ReportTemplateTbl] WHERE [ReportTemplateTbl].[Name] = ? '

我真的很想了解我在这里做错了什么,并试图避免进行手动查询。提前致谢!

python sql-server django django-models pyodbc

3
推荐指数
1
解决办法
6438
查看次数