小编GDo*_*orn的帖子

Django动态模型字段

我正在开发一个多租户应用程序,其中一些用户可以定义自己的数据字段(通过管理员)以收集表单中的其他数据并报告数据.后一位使JSONField不是一个很好的选择,所以我有以下解决方案:

class CustomDataField(models.Model):
    """
    Abstract specification for arbitrary data fields.
    Not used for holding data itself, but metadata about the fields.
    """
    site = models.ForeignKey(Site, default=settings.SITE_ID)
    name = models.CharField(max_length=64)

    class Meta:
        abstract = True

class CustomDataValue(models.Model):
    """
    Abstract specification for arbitrary data.
    """
    value = models.CharField(max_length=1024)

    class Meta:
        abstract = True
Run Code Online (Sandbox Code Playgroud)

请注意CustomDataField如何具有ForeignKey to Site - 每个站点将具有一组不同的自定义数据字段,但使用相同的数据库.然后,各种具体数据字段可以定义为:

class UserCustomDataField(CustomDataField):
    pass

class UserCustomDataValue(CustomDataValue):
    custom_field = models.ForeignKey(UserCustomDataField)
    user = models.ForeignKey(User, related_name='custom_data')

    class Meta:
        unique_together=(('user','custom_field'),)
Run Code Online (Sandbox Code Playgroud)

这导致以下用途:

custom_field = UserCustomDataField.objects.create(name='zodiac', site=my_site) #probably created …
Run Code Online (Sandbox Code Playgroud)

python django dynamic django-models django-custom-manager

156
推荐指数
2
解决办法
6万
查看次数

如何使用django-nose运行单个测试或单个TestCase?

使用Django的普通测试运行器,您可以深入研究在特定应用程序,TestCase的特定子类或TestCase的特定子类中的特定测试中运行测试.

例如:

./manage.py test myapp.MyTestCase.test_something
Run Code Online (Sandbox Code Playgroud)

但是,除了测试特定应用程序之外,django-nose似乎不支持任何其他内容.我如何复制最后两个行为?

testing django unit-testing nosetests django-nose

35
推荐指数
2
解决办法
1万
查看次数

Django - User.DoesNotExist不存在?

我想抓住Django.我在Eclipse上使用Pydev.我写了一个简单的注册页面,我无法工作.Eclipse抱怨User.DoesNotExist未定义.最有可能的是,我遗漏了一些微不足道的东西.这是代码的相关部分:

from django.contrib.auth.models import User
...
class SignUpForm (forms.Form):
    ...
    def clean_username (self): 
        try:
            User.objects.get(username=self.cleaned_data['username'])
        except User.DoesNotExist:
            return self.cleaned_data['username']
        raise forms.ValidationError(USERNAME_ALREADY_IN_USE)
    ...
Run Code Online (Sandbox Code Playgroud)

python authentication django pydev django-models

32
推荐指数
3
解决办法
2万
查看次数

如何在Python中验证JSON模式架构?

我以编程方式生成JSON-Schema架构.我希望确保架构有效.是否有我可以验证我的架构的架构?

请注意我在该句和标题中使用了两次模式.我不想根据我的架构验证数据,我想验证我的架构.

python jsonschema

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

如何强制Firefox绕过Angular.JS局部的BFCache?

我正在开发Angular.js页面并对html'partial'进行更改.刷新页面会导致Firefox正确地从服务器重新请求主html页面,但是后续的"部分"模板(客户端呈现)永远不会被重新请求,而是从BFCache中获取,因此对这些文件的更改不会检测.

Firebug的屏幕截图: BFCache firebug截图

我可以通过开发服务器(Django)确认永远不会请求那些部分.

我尝试了各种刷新,包括Reload Plus扩展.

firefox angularjs bfcache

9
推荐指数
1
解决办法
4640
查看次数

将Unicode对象转换为Python Dict

我正在处理的请求对象具有键"地址"的以下值:

  u"{u'city': u'new-york', u'name': u'Home', u'display_value': u'2 Main Street'}"
Run Code Online (Sandbox Code Playgroud)

我需要将这个unicode对象作为字典进行操作.不幸的是,json.loads()失败,因为它不是json兼容的对象.

有什么方法可以解决这个问题吗?我是否必须使用json.JSONDecoder对象?

python serialization json

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

如何使用具有相同名称的多个复选框的pylons(粘贴)webtest?

假设我有一个这样的表格:

<form id='myform'>
    Favorite colors?
    <input type='checkbox' name='color' value='Green'>Green
    <input type='checkbox' name='color' value='Blue'>Blue
    <input type='checkbox' name='color' value='Red'>Red
    <input type='submit' value='Submit'>
</form>
Run Code Online (Sandbox Code Playgroud)

如何使用webtest的表单库来测试提交多个值?

python pylons webtest paste webob

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

大芹菜任务内存泄漏

我有一个巨大的芹菜任务基本上像这样工作:

 @task
 def my_task(id):
   if settings.DEBUG:
     print "Don't run this with debug on."
     return False

   related_ids = get_related_ids(id)

   chunk_size = 500

   for i in xrange(0, len(related_ids), chunk_size):
     ids = related_ids[i:i+chunk_size]
     MyModel.objects.filter(pk__in=ids).delete()
     print_memory_usage()
Run Code Online (Sandbox Code Playgroud)

我还有一个manage.py命令,只运行my_task(int(args [0])),因此可以排队或在命令行上运行.

在命令行上运行时,print_memory_usage()会显示相对恒定的内存量.

当在celery中运行时,print_memory_usage()显示内存量不断增加,一直持续到进程被终止(我使用Heroku的内存限制为1GB,但其他主机会有类似的问题.)内存泄漏似乎与chunk_size对应; 如果我增加chunk_size,每次打印的内存消耗会增加.这似乎暗示芹菜正在记录查询本身,或者我的堆栈中的其他东西.

芹菜会在其他地方记录查询吗?

其他说明:

  • DEBUG已关闭.
  • RabbitMQ和Amazon的SQS都作为队列发生了这种情况.
  • 这在本地和Heroku上都会发生(尽管由于具有16 GB的RAM而不会在本地被杀死.)
  • 除了删除对象之外,任务实际上还要做更多的事情.稍后它通过MyModel.objects.get_or_create()创建新对象.这也表现出相同的行为(内存在芹菜下增长,不会在manage.py下增长).

python django memory-leaks celery

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

如何让elasticsearch执行完全匹配查询?

这是一个由两部分组成的问题.

我的文件看起来像这样:

{"url": "https://someurl.com", 
 "content": "searchable content here", 
 "hash": "c54cc9cdd4a79ca10a891b8d1b7783c295455040", 
 "headings": "more searchable content", 
 "title": "Page Title"}
Run Code Online (Sandbox Code Playgroud)

我的第一个问题是如何检索"标题" 正好是 "无标题"的所有文档.我不希望出现标题为"此文档没有标题"的文档.

我的第二个问题是如何检索所有文件,其中'url' 恰好出现在一长串网址中.

我正在使用pyelasticsearch,但curl中的通用答案也可以.

python elasticsearch

4
推荐指数
3
解决办法
6012
查看次数

结合使用django和旧版身份验证Cookie

我在自制python框架中有一个大型代码库。我将逐步将代码移至Django,但与此同时,需要支持通过旧系统登录。旧系统在用户登录后使用cookie来识别用户。

我不希望用户通过Django登录,但我确实希望能够使用@login_required以及依赖Django身份验证系统的多个应用程序,例如admin,django-tagging和django-comments。

集成两个身份验证系统的最佳方法是什么?这两个代码库都在同一个python进程中运行(通过可根据每个请求切换应用程序的wsgi中间件),并且可以根据需要相互加载模块。

django legacy-code django-authentication

2
推荐指数
1
解决办法
353
查看次数

如何从Django Tastypie中的相关模型返回数据?

如何从其他模型中引入信息?

我有两个型号Article,和ArticleBody

包含主要信息的文章和包含身体和图像信息循环的ArticleBody

class Article(models.Model):
    author = models.ForeignKey(User)
    title = models.CharField(max_length=100)
    excerpt = models.CharField(max_length=140, null=True, blank=True, help_text='A description no longer than 140 characters that explains what the article is about, important for SEO')
    category = models.ManyToManyField(Category)
    date_published = models.DateTimeField()
    slug = models.SlugField(null=True)
    status = models.CharField(choices=STATUS, max_length=2, default='DR')
    tags = TagField(default='', null=True, blank=True, help_text='Just add a comma between the tags i.e. "My very important name, Hunting, Scope, Rifle"')
    source_name = models.CharField(default='', blank=True, null=True, help_text='Outdoor Magazine', max_length=100)
    source_url = …
Run Code Online (Sandbox Code Playgroud)

python api django django-models tastypie

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