小编okm*_*okm的帖子

Django:MySQL没有这样的表:aidata.django_session

我在Pycharm的Windows 7上运行Django 1.4并且我安装了WAMP,因为我需要将我的数据放在MySQL表中.

这是来自setting.py

DATABASES = {
  'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': 'aidata',
    'USER': 'root'
   }
}
Run Code Online (Sandbox Code Playgroud)

从installed_apps我取消注释:

'django.contrib.sessions'
Run Code Online (Sandbox Code Playgroud)

运行manage.py syncdb不会在我的mysqldb中创建任何表(甚至是模型).

我试图访问时收到错误 /admin/

 DatabaseError at /admin/
(1146, "Table 'aidata.django_session' doesn't exist")
Run Code Online (Sandbox Code Playgroud)

django django-models

7
推荐指数
1
解决办法
8038
查看次数

具有django-guardian分配的权限的对象在admin中不可见

我正在使用django-guardian来管理每个对象的权限.

对于给定的用户,我授予对一个对象的所有权限:

joe = User.objects.get(username="joe")

mytask = Task.objects.get(pk=1)

assign('add_task', joe, mytask)
assign('change_task', joe, mytask)
assign('delete_task', joe, mytask)
Run Code Online (Sandbox Code Playgroud)

我按预期得到了:

In [57]: joe.has_perm("add_task", mytask)
Out[57]: True

In [58]: joe.has_perm("change_task", mytask)
Out[58]: True

In [59]: joe.has_perm("delete_task", mytask)
Out[59]: True
Run Code Online (Sandbox Code Playgroud)

在admin.py中我也使TaskAdmin继承GuardedModelAdmin而不是admin.ModelAdmin

现在当我用joe连接到我的网站时,我得到了管理员:

You don't have permission to edit anything 
Run Code Online (Sandbox Code Playgroud)

我不应该能够编辑对象mytask吗?

我是否必须使用内置的基于模型的权限系统设置一些权限?

我错过了什么吗?

编辑

我试图添加选项user_can_access_owned_objects_only,这应该是我的问题,但我仍然看不到我的管理员...

class TaskAdmin(GuardedModelAdmin):

    user_can_access_owned_objects_only = True

    pass

admin.site.register(Task, TaskAdmin)
Run Code Online (Sandbox Code Playgroud)

谢谢

django permissions django-admin django-authentication django-guardian

7
推荐指数
1
解决办法
2788
查看次数

子类化Django UpdateCacheMiddleware和FetchFromCacheMiddleware的技术

我已经使用UpdateCacheMiddlewareFetchFromCacheMiddlewareMiddleWare来实现站点范围的匿名缓存,以获得不同程度的成功.

最大的问题是中间件只缓存匿名用户的第一个请求.由于在第一个响应上设置了session_id cookie,因此匿名用户的后续请求不会因为Headers上的视图级缓存变化而到达缓存.

我的网页在匿名用户中没有显着差异,并且只要它们有所不同,我可以通过Ajax处理.结果,我决定尝试将Django的缓存中间件子类化为不再改变Header.相反,它在Anonymous vs. LoggedIn Users上有所不同.因为我正在使用Auth后端,并且该处理程序在从缓存中获取之前发生,所以它似乎有效.

class AnonymousUpdateCacheMiddleware(UpdateCacheMiddleware):

    def process_response(self, request, response):
        """
        Sets the cache, if needed.
        We are overriding it in order to change the behavior of learn_cache_key().
        """

        if not self._should_update_cache(request, response):
            # We don't need to update the cache, just return.
            return response
        if not response.status_code == 200:
            return response

        timeout = get_max_age(response)
        if timeout == None:
            timeout = self.cache_timeout
        elif timeout == 0:
            # max-age was set to 0, don't …
Run Code Online (Sandbox Code Playgroud)

django caching middleware django-views

7
推荐指数
1
解决办法
601
查看次数

Grunt usemin与模板

给定以下目录结构:

– Gruntfile.js
– app
    |– index.php
    |– js
    |– css
    |– templates
         |– template.php
– dist
Run Code Online (Sandbox Code Playgroud)

如何配置grunt usemin来更新模板文件中相对于使用模板的index.php的样式和脚本的引用?

目前任务看起来像这样:

useminPrepare: {
    html: '<%= yeoman.app %>/templates/template.php',
    options: {
        dest: '<%= yeoman.dist %>'
    }
},
usemin: {
    html: ['<%= yeoman.dist %>/{,*/}*.php'],
    css: ['<%= yeoman.dist %>/css/*.css'],
    options: {
        dirs: ['<%= yeoman.dist %>']
    }
}
Run Code Online (Sandbox Code Playgroud)

模板内部的块看起来像这样:

<!-- build:js js/main.js -->
    <script src="js/script1.js"></script>
    <script src="js/script2.js"></script>
<!-- endbuild -->
Run Code Online (Sandbox Code Playgroud)

gruntjs yeoman

7
推荐指数
1
解决办法
4111
查看次数

如何自定义django表单标签

class permForm(forms.Form):
    def __init__(self, data=None, **kwargs):
        super(permForm, self).__init__(data, **kwargs)

        for item in list(AdminMenu.objects.filter(parent_id=0)):
            self.fields['menu_%d' % item.id] = forms.BooleanField(label=item.title)
            for childitem in list(AdminMenu.objects.filter(parent_id=item.id)):
                arr=[]
                arr.append(str(item.id))
                arr.append(str(childitem.id))
                self.fields['menu_%s' % '_'.join(arr)] = forms.BooleanField(label=childitem.title)
Run Code Online (Sandbox Code Playgroud)

这将返回

类别:复选框

添加类别:复选框

列表类别:复选框

食物:复选框

添加Fooditems:复选框

列出Fooditem:复选框

表格:复选框

添加表格:复选框

列表:复选框

用户:复选框

查看用户:复选框
如何将其显示如下

类别:复选框

添加类别:复选框

列表类别:复选框

食物:复选框

添加Fooditems:复选框

列出Fooditem:复选框

表格:复选框

添加表格:复选框

列表:复选框

用户:复选框

查看用户:复选框

我想让父母分类标签大胆地从孩子那里辨认出来.可能?我不想使用硬编码的形式

forms django customization label

6
推荐指数
1
解决办法
5177
查看次数

Python:如何在列表列表中追加新元素?

这是一个非常简单的程序:

 a = [[]]*3

 print str(a)

 a[0].append(1)
 a[1].append(2)
 a[2].append(3)

 print str(a[0])
 print str(a[1])
 print str(a[2])
Run Code Online (Sandbox Code Playgroud)

这是我期待的输出:

 [[], [], []]
 [1]
 [2]
 [3]
Run Code Online (Sandbox Code Playgroud)

但相反,我得到了这个:

 [[], [], []]
 [1, 2, 3]
 [1, 2, 3]
 [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

我真的没有到达这里!

python list

6
推荐指数
3
解决办法
678
查看次数

如何用反向正确地做HttpResponseRedirect?

我收到错误"_reverse_with_prefix()参数后*必须是一个序列,而不是int"当我尝试反转时.我以前在视图中硬编码参数,但我试图使其动态化.有什么建议?

视图:

def add_review(request, product_id):
    p = get_object_or_404(Product, pk=product_id)
    if request.method == 'POST':
        form = ReviewForm(request.POST)
        if form.is_valid():
            form.save()
            #HARDCODED: return HttpResponseRedirect('/products/1/reviews/')
            return HttpResponseRedirect(reverse('view_reviews', args=(p.id)))
    else:
        form = ReviewForm()
    variables = RequestContext(request, {'form': form})
    return render_to_response('reserve/templates/create_review.html', variables)        


def view_reviews(request, product_id):
    product = get_object_or_404(Product, pk=product_id)
    reviews = Review.objects.filter(product_id=product_id)
    return render_to_response('reserve/templates/view_reviews.html', {'product':product, 'reviews':reviews},
    context_instance=RequestContext(request))


urlpatterns = patterns('reserve.views',
    url(r'^clubs/$', 'index'),
    url(r'^products/(?P<product_id>\d+)/reviews/$', 'view_reviews'),
    url(r'^products/(?P<product_id>\d+)/add_review/$', 'add_review'),
    url(r'^admin/', include(admin.site.urls)),
)
Run Code Online (Sandbox Code Playgroud)

python django

5
推荐指数
1
解决办法
8233
查看次数

如何在Metro风格应用中实现滑动页面转换

我想在Metro Style App中使用幻灯片样式实现页面转换.

效果看起来像

    state 1                     state 2                   state 3
 ____________              _______________             ____________  
|            |            |       |       |           |            |
|   page A   |    ====>   |page A |page B |   ====>   |   page B   |
|            |            |partial|partial|           |            |
|____________|            |_______|_______|           |____________|
Run Code Online (Sandbox Code Playgroud)

它将通过平移手势从右向左滑动来触发(没有触发系统工具栏,我不知道如何隔离它们).

我打得瓦特/ exitPage/enterPage但没有运气:好像之前B页面中获取页面A被消失了.
此外,我读过一个页面导航,片段加载的代码示例滚动/平移的代码示例想想吧,将当前页面和新页面放在div包装器中,并在div中调用它们navigate().但这可能会破坏CSS的位置,我不知道什么时候可以安全地调用新页面的JS ...

更新1也许FlipView可以做到这一点?

更新2找到加载本地页面的方法FlipView,发现有用的链接的掌握,但仍然困惑...

update …

javascript html5 microsoft-metro windows-8

5
推荐指数
1
解决办法
2838
查看次数

Django的403页

我使用Django 1.4.我在与404.html相同的目录中创建了403.html文件(404错误页面工作正常).是的,我读过这个.然后我在浏览器中关闭cookie,尝试登录并查看默认的403错误页面,而不是我的403.html页面:

Forbidden (403)
CSRF verification failed. Request aborted.
More information is available with DEBUG=True.
Run Code Online (Sandbox Code Playgroud)

我重新启动了Apache,但它没有帮助.

怎么解决?谢谢

django

5
推荐指数
1
解决办法
1798
查看次数

如何在Windows 2008上安装SQLPLUS(Oracle DB API)

我在谷歌搜索这个主题已经很长时间了,但还是无法解决这个简单的问题.

我想在我的Windows机器上只安装sqlplus和oci客户端.oracle服务器正在远程运行.在这个Windows框中我只想要客户端组件包括sqlplus终端.

我已经在我的Windows机器上完成了以下操作

从这里下载oracle数据访问组件

http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html

以管理员身份运行cmd.exe并运行以下命令

安装所有c:\ oracle myhome

在Windows控制面板中设置以下环境变量

ORACLE_HOME=C:\ORACLE
LD_LIBRARY_PATH=C:\ORACLE
LIB_PATH=c:\ORACLE
NLS_LANG=AMERICAN_AMERICA.UTF8
PATH=C:\ORACLE;C:\ORACLE\BIN
Run Code Online (Sandbox Code Playgroud)

但是当我运行sqlplus.exe时出现错误

**SP2-0667:找不到消息文件sp1.msb SP2-0750:您可能需要将ORACLE_HOME设置为Oracle软件目录**

我的所有搜索都向我显示人们通过正确设置oracle_home来解决这个问题...但我认为他们安装了完整的服务器产品,而我只使用上面列出的命令安装了客户端组件.

我错过了什么?如何在不在我的机器上安装完整服务器的情况下获得正常工作的sqlplus?

sqlplus

5
推荐指数
0
解决办法
1万
查看次数