小编ric*_*ich的帖子

django用干净的方法改变表格数据

我有一个django表单,我想自定义清理.我不想仅仅像这里那样指定错误消息(Django表单和字段验证),而是想自己改变字段.我尝试了一些方法,但一直遇到错误,就像cleaning_data是不可变的一样.

所以为了解决这个问题,我制作了一份副本,对其进行了修改并重新分配给了自己.这是最好的方法吗?可以/我应该在视图中处理这个吗?制作副本似乎很糟糕,但我一直遇到"不可变"的障碍.下面的示例代码我只是检查主题是否在末尾有'--help',如果没有添加它.谢谢

def clean(self):
        cleaned_data=self.cleaned_data.copy()
        subject=cleaned_data.get['subject']
        if not subject.endswith('--help'):
            cleaned_data['subject']=subject+='--help'
        self.cleaned_data=cleaned_data
        return self.cleaned_data
Run Code Online (Sandbox Code Playgroud)

forms django

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

django将ManyToMany字段/表添加到现有模式,related_name错误

我有一个模型(用户和书籍)的现有项目.我想在现有模型Books中添加ManyToMany(M2M)字段,但syncbb命令不会这样做.

详细信息:图书已经有一个映射到用户的FK字段,我想添加一个也映射到用户的新M2M字段(阅读器).如你所知,Django的syncdb只关心表,所以添加一个普通字段很容易,但是M2M需要一个新的连接表(app_books_user),所以不应该像任何其他新表那样使用syncdb cmd添加它吗?它为Book的'卖家'领域创建了我的另一个联合表.

当我运行syncdb时,我最初收到一条错误,指示我使用'related_name'参数来帮助区分对User的两个引用.我加了那些.但是,当我再次运行syncdb时,它不会创建新的连接表(但它现在没有错误).当我通过Shell查看它时存在新字段,但是不能使用它b/c连接表不存在.我通过'sqlall'cmd查看了sql代码,它打印出新表的SQL,但它没有被执行.

我错过了什么?我应该通过我的数据库浏览器强制SQL(来自sqlall)吗?这有什么影响吗?代码如下:

Models.py

from django.contrib.auth.models import User

class Seller(models.Model):
    ...

class Books(models.Model):

    name=models.CharField(max_length=50)
    author=models.ForeignKey(User, related_name='creator')
    readers=models.ManyToManyField(User, blank=True, related_name='viewers')
    sellers=models.ManyToManyField(Seller)
Run Code Online (Sandbox Code Playgroud)

谢谢

django many-to-many field

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

如何在开发服务器中测试django注册应用程序进程(无邮件)

我正在我的MAC上开发一个django应用程序.django附带的开发服务器很棒.但是,我安装了django-authopenid(将django-registration app与openID结合使用),遵循3步流程:用户注册,app发送带链接的确认电子邮件,用户点击链接确认注册.

由于django开发服务器没有邮件服务器,如何测试该进程的此确认电子邮件部分?我按照一个想法将电子邮件的内容打印到终端,但我不能按照链接.有什么建议?

email django registration

7
推荐指数
3
解决办法
3727
查看次数

自然语言处理修复组合词

我有一些由另一个系统生成的文本.它将一些单词组合在一起,我认为是某种文字包装副产品.所以像"狗"这样简单的东西就会组合成"狗".

我检查了ascii和unicode字符串,看看那里没有一些看不见的字符,但没有.一个令人困惑的问题是,这是医学文本,要检查的语料库不是可用的.因此,真正的例子是"...排除SARS与肺炎的试验"最终成为"......肺炎".

有人建议找到并分离这些吗?

regex nlp

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

Django,自动生成独特的模型字段,并递归调用自动生成器,如果不是唯一的

我正在开发一个Django项目,除了标准的自动递增ID整数字段外,Thing将拥有一个唯一的10位密钥.我使用一个简单的随机数函数来创建它.[我确信有更好的方法可以做到这一点]

创建Thing时,会创建一个10位数的Key.我使用.validate_unique()来检查Key的唯一性.如果它不是唯一的,有没有一种简单的方法可以递归调用Key生成器(makeKey())直到它通过?代码如下:

Models.py:

class Thing(models.Model):
    name=models.CharField(max_length=50)
    key=models.IntegerField(unique=True)
Run Code Online (Sandbox Code Playgroud)

Views.py:

def makeKey():
    key=''
    while len(key)<10:
        n=random.randint(0,9)
        key+=`n`
    k=int(key)
    #k=1234567890   #for testing uniqueness
    return k

def createThing(request):
    if ( request.method == 'POST' ):
    f = ThingForm(request.POST)
try:
    f.is_valid()
    newF=f.save(commit=False)
    newF.key=makeKey()
    newF.validate_unique(exclude=None)
    newF.save()
    return HttpResponseRedirect(redirect)

except Exception, error:
    print "Failed in register", error
    else:
        f = ThingForm()
    return render_to_response('thing_form.html', {'f': f})
Run Code Online (Sandbox Code Playgroud)

谢谢

django validation model unique

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

Django从另一个应用程序模型中的外键导入错误

我在这里发表这篇文章,并整理了如何将一个模型的ForeignKey设置为另一个应用程序中的模型.但是,当我第二次尝试时,我得到一个错误,不知道为什么.

我的中央应用程序包含"项目"和"注释"的模型,以及带有报告模型的报告应用程序."注释"在"报告"应用中的"报告"中有一个FK,这似乎可以正常使用此代码:

#models.py for Central app
from GIanno.pt_reports.models import Report

class annotation(models.Model):
    ... 
    report=models.ForeignKey(Report)
Run Code Online (Sandbox Code Playgroud)

但是,在Reports应用程序中,当我尝试使用与上面相同的格式为"报告"设置FK以将其链接到"中心"应用程序中的"项目"时,我收到错误"无法导入名称"项目'从进口线.

关于它为什么单向而不是另一种方式工作的任何想法.订单有点重要吗?谢谢

django foreign-key-relationship

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