小编rh0*_*ium的帖子

在Django中Admin之外使用filter_horizo​​ntal最简单的方法

我有一个非管理员表单,我想在其中使用filter_horizo​​ntal.我读过这个比我想要的更多(我只想要filter_horizo​​ntal).我想检查是否有人想出一个更简单(更新)的方法来实现filter_horizo​​ntal.

所以这是代码:

class County(models.Model):
    """County Names"""
    name = models.CharField(max_length=64)
    state = USStateField(null=True)

class Company(models.Model):
    """The basics of a company"""
    name = models.CharField(max_length = 100)
    counties = models.ManyToManyField(County,blank=True, null=True)
Run Code Online (Sandbox Code Playgroud)

然后我们的表单目前看起来像这样.我以为这会起作用..

from django.contrib.admin.widgets import FilteredSelectMultiple
class RaterCompanyForm(ModelForm):
    class Meta:
        model = RaterOrganization
        exclude = ('remrate_projects',)
        widgets = {'counties': FilteredSelectMultiple(verbose_name="Counties",
                                                      is_stacked=True,) }
    class Media:
        css = {'all':['admin/css/widgets.css']}
        js = ['/admin/jsi18n/']
Run Code Online (Sandbox Code Playgroud)

顺便说一句:我知道这可能与重复,但他的问题没有得到解答.我在这里这里做了很多功课,但这些都没有起作用.

django django-templates django-forms

10
推荐指数
1
解决办法
4739
查看次数

Python IDLE的默认保存路径?

有没有人知道在运行之前在保存python脚本时在何处或如何设置默认路径/目录?

在Mac上,它希望将它们保存在顶级~/Documents directory.我想指定一个真实的位置.有任何想法吗?

python python-idle

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

Django过滤MySQL警告

之前大家指出我在这里这里挖掘有点不同.所以我转移到我的生产服务器后开始出现这个着名的错误.

django/db/backends/mysql/base.py:86:警告:第1行的'slug'列数据被截断

我做的第一件事就是在解决问题后开始谷歌搜索.为了解决这个问题,我调整了两个模型,使其max_length为128,然后更新SQL表以匹配它. 但问题仍然存在. 有点确信我确实解决了这个问题,我认为我也可以开始过滤它们.所以在我的脚本的顶部我放置了这个.

# Get rid of the MySQLdb warnings
import warnings
import MySQLdb
with warnings.catch_warnings():
    warnings.filterwarnings("ignore", category=MySQLdb.Warning)
Run Code Online (Sandbox Code Playgroud)

我很乐意将其推向生产阶段.猜猜是什么 - 你猜对了问题依然存在.那么现在怎么办.我很快就失去了信心,我确实解决了这个问题,但仔细检查表明所有的slug列都是128个字符长.此外,如果长度超过128而且仍然没有,我将sluggify包装为错误.那2个问题:

  1. 我怎样才能确定哪些操作标志着这一点.即我的代码中的哪个标志被提升了?

  2. 我怎么能真正过滤掉这些?我的修复不起作用?这真的是MySQLdb警告还是django.db.mysql.base警告?

谢谢和快乐Django黑客!

对于那些对结构有疑问的​​人..

CREATE TABLE `people_employee` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(100) DEFAULT NULL,
  `email` varchar(75) DEFAULT NULL,
  `location_id` varchar(100) DEFAULT NULL,
  `jpeg` longtext,
  `first_name` varchar(100) DEFAULT NULL,
  `last_name` varchar(100) DEFAULT NULL,
  `maildomain` varchar(32) DEFAULT NULL,
  `mailserver` varchar(32) DEFAULT NULL,
  `mailfile` varchar(64) DEFAULT NULL,
  `contractor` tinyint(1) NOT NULL,
  `temporary` tinyint(1) …
Run Code Online (Sandbox Code Playgroud)

python django django-models

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

在pydistutils.cfg中定义install-platlib的问题 -

根据文档,我应该能够在〜/ .pydistutils.cfg中简单地定义它并关闭并运行.

[install]
install-base=$HOME
install-purelib=python/lib
install-platlib=python/lib.$PLAT
install-scripts=python/scripts
install-data=python/data
Run Code Online (Sandbox Code Playgroud)

但是 - 当我这样做时,我只是得到这个错误......

错误:提供了install-base或install-platbase,但安装方案不完整

但我明确地遵循了文档.任何人都可以解释为什么会发生这种情况; 以及如何解决它?

python

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

在python和__repr__中动态创建类

这是一个相当简单的问题,希望你们都可以启发我.在下面的示例中,如何将__repr__定义为动态设置为self.name?

谢谢大家!

import re

inputlist = 'Project="Sparcy" Desc=""\nProject="Libs" Desc=""\nProject="Darwin" Desc=""\nProject="Aaple" Desc="The big project"'

regex = re.compile('([^ =]+) *= *("[^"]*"|[^ ]*)')

results = []
for project in inputlist.split("\n"):
    items = [ (k.strip(), v.strip()) for k, v in regex.findall(project)]
    if len(items) < 2:
        print("Houston we have a problem - Only %s k/v pair found for %s" % (len(items), project))
        continue
    item_dict = dict(items[1:])
    item_dict['name'] = items[0][1]
    klass = type(items[0][0], (object,), item_dict)
    results.append(klass)

print results
Run Code Online (Sandbox Code Playgroud)

我要找的是这个

伪代码

for result in results
 type(result) ? …
Run Code Online (Sandbox Code Playgroud)

python

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

Django 应用间导入的公认做法是什么

Django 和相互交互的应用程序很容易遇到导入问题。我的问题很简单:

最小化循环进口的公认流程是什么,或者是否有人提出了公认的编码标准来减少他们愿意分享的这些?

我正在寻找可以标准化的良好原则。

楷模

class Program(models.Model):
    group = models.ForeignKey(Group, related_name="%(app_label)s_%(class)s_related") 
Run Code Online (Sandbox Code Playgroud)

对比

class Program(models.Model):
    group = models.ForeignKey('auth.Group', related_name="%(app_label)s_%(class)s_related") 
Run Code Online (Sandbox Code Playgroud)

意见:

class ProgramDetailView(DetailView):
    """Detail view of the EEP Program"""

    def get_queryset(self):
        """Narrow this based on your company"""
        from apps.company.models import Company
        company = Company.objects.get(name="foo")
        return Program.objects.filter(company = company)
Run Code Online (Sandbox Code Playgroud)

vs(这往往会导致问题..

from apps.company.models import Company
class ProgramDetailView(DetailView):
    """Detail view of the EEP Program"""

    def get_queryset(self):
        """Narrow this based on your company"""
        company = Company.objects.get(name="foo")
        return Program.objects.filter(company = company)
Run Code Online (Sandbox Code Playgroud)

这样做的问题是你倾向于在所有地方进行大量导入。

python django

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

Django - Mac OSX工作流程 - 有关高效开发方法的问题

我将概述我的工作流程,我想就如何提高效率提出一些建议.现在看起来有点麻烦和重复(我讨厌的东西),所以我正在寻找一些改进.请记住,我仍然是django的新手以及它是如何工作的但我是一个非常流利的编码器(恕我直言).所以这里......

工具(我每天都使用这些工具,所以我不倾向于转移):

  • Mac OSX Leopard
  • TextMate的
  • 终端带标签
  • Perforce公司

假设

  • Django Basics(教程/买书)
  • Python Fluent(运行2.6,支持IDLE)
  • 开始我的第一个应用程序在models.py上工作

开始

  • 创建一个TextMate项目,其中包含整个django树.

TextMate项目http://img.skitch.com/20090821-g48cpt38pyfwk4u95mf4gk1m7d.jpg

  • 在终端的第一个选项卡中启动服务器

    python ./manage.py runserver

  • 在终端窗口的第二个选项卡中启动shell

    python ./manage.py shell

  • 这产生了iPython,让我开始开发工作流程

工作流程

  • 创建并构建一个名为models.py的基本模型

  • 建立一个基本模型


class P4Change(models.Model):
  """This simply expands out 'p4 describe' """
  change        = models.IntegerField(primary_key=True)
  client        = models.ForeignKey(P4Client)
  user          = models.ForeignKey(P4User)
  files         = models.ManyToManyField(P4Document)
  desc          = models.TextField()
  status        = models.CharField(max_length=128)
  time          = models.DateField(auto_now_add=True)


  def __unicode__(self):
    return str(self.change)

admin.site.register(P4Change)
Run Code Online (Sandbox Code Playgroud)
  • 在第一个终端(运行服务器)中停止它^ C和syncdb启动服务器

>  python ./manage.py syncdb
Creating table perforce_p4change
Installing index for …
Run Code Online (Sandbox Code Playgroud)

django macos workflow textmate

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

确保只运行一个类的一个实例

我有一个基础类,我想放在一些代码中.我只希望它被实例化或为给定的应用程序启动一次,虽然它可能被多次调用..下面代码的问题是LowClass一次又一次地启动.我只希望每次测试都能启动一次..

import logging

class LowClass:

    active = False

    def __init__(self):
        self.log = logging.getLogger()
        self.log.debug("Init %s" % self.__class__.__name__)
        if self.active:
            return
        else:
            self.active = True
        self.log.debug("Now active!")

class A:
    def __init__(self):
        self.log = logging.getLogger()
        self.log.debug("Init %s" % self.__class__.__name__)
        self.lowclass = LowClass()

class B:
    def __init__(self):
        self.log = logging.getLogger()
        self.log.debug("Init %s" % self.__class__.__name__)
        self.lowclass = LowClass()

class C:
    def __init__(self):
        self.log = logging.getLogger()
        self.log.debug("Init %s" % self.__class__.__name__)
        self.a = A()
        self.b = B()


class ATests(unittest.TestCase):
    def setUp(self):
        pass

    def testOne(self):
        a = …
Run Code Online (Sandbox Code Playgroud)

python singleton

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

Monostate的Python弃用警告__new__ - 有人能解释原因吗?

我有一个基本的Monostate与Python 2.6.

class Borg(object):
    __shared_state = {}
    def __new__(cls, *args, **kwargs):
        self = object.__new__(cls, *args, **kwargs)
        self.__dict__ = cls.__shared_state
        return self

    def __init__(self, *args, **kwargs):
        noSend = kwargs.get("noSend", False)
        reportLevel = kwargs.get("reportLevel", 30)
        reportMethods = kwargs.get("reportMethods", "BaseReport")
        contacts= kwargs.get("contacts", None)

a = Borg(contacts="Foo", noSend="Bar", )
Run Code Online (Sandbox Code Playgroud)

哪位高兴地给了我以下的弃权警告..

untitled:4: DeprecationWarning: object.__new__() takes no parameters
  self = object.__new__(cls, *args, **kwargs)
Run Code Online (Sandbox Code Playgroud)

经过一段谷歌搜索后,我发现这是附加到Bug#1683368.我无法弄清楚这意味着什么.它抱怨以下这一行

self = object.__new__(cls, *args, **kwargs)
Run Code Online (Sandbox Code Playgroud)

这似乎没问题.有人可以用非专业术语解释为什么这是一个问题.我理解"这与其他内置插件不一致,如列表",但我不确定我理解为什么.有人会解释这个让我看到正确的方法吗?

谢谢

python deprecated monostate

5
推荐指数
2
解决办法
1175
查看次数

Django-dumpdata截断为最后n行

有没有人有一个简单的解决方案来使用(或修改)dumpdata将一个简单的表缩小到最后n行。我喜欢将转储数据用于测试夹具,但是数据大小太大了,这毫无意义。顺便说一句-我不是在设计桌子,我只是需要处理的吸盘。

对于那些可能会问这里结构如何的人。

从Django Side

class GridResourceUsage(models.Model):
    """Sampled point in time of license usage for individual grid resource. Includes who and quanity."""
    timestamp = models.DateTimeField(db_index=True)
    grid_license_resource = models.ForeignKey(GridLicResource)
    total    = models.IntegerField(default=None, null=True)
    limit    = models.IntegerField(default=None, null=True)
    free     = models.IntegerField(default=None, null=True)
    intern   = models.IntegerField(default=None, null=True)
    extern   = models.IntegerField(default=None, null=True)
    waiting  = models.IntegerField(default=None, null=True)
    def __unicode__(self):
        return str("GRU-" + self.grid_license_resource.name) 
    class Meta:
        ordering = ['-timestamp']
    @models.permalink
    def get_absolute_url(self):
        return('hist_res_id', (), {'resource': str(self.grid_license_resource.name), 'id':str(self.id)})
Run Code Online (Sandbox Code Playgroud)

从MySQL方面

CREATE TABLE `gridresource_gridresourceusage` (
  `id` int(11) NOT NULL AUTO_INCREMENT, …
Run Code Online (Sandbox Code Playgroud)

django mysqldump django-models django-admin

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