有没有办法在Django中定义几个字段是唯一的?
我有一个卷(期刊)表,我不想要同一期刊的一个卷号.
class Volume(models.Model):
id = models.AutoField(primary_key=True)
journal_id = models.ForeignKey(Journals, db_column='jid', null=True, verbose_name = "Journal")
volume_number = models.CharField('Volume Number', max_length=100)
comments = models.TextField('Comments', max_length=4000, blank=True)
Run Code Online (Sandbox Code Playgroud)
我试图unique = True在字段中添加属性journal_id,volume_number但它不起作用.
有没有一种快速的方法来创建一个右侧有图标的输入文本元素来清除输入元素本身(如谷歌搜索框)?
我环顾四周,但我只找到了如何将图标作为输入元素的背景.是否有jQuery插件或其他东西?
我想要输入文本元素中的图标,如:
--------------------------------------------------
| X|
--------------------------------------------------
Run Code Online (Sandbox Code Playgroud) 我希望在我的模型中有一个固定长度的CharField.换句话说,我希望只有指定的长度才有效.
我试着做点什么
volumenumber = models.CharField('Volume Number', max_length=4, min_length=4)
Run Code Online (Sandbox Code Playgroud)
但它给了我一个错误(似乎我可以同时使用max_length和min_length).
还有另一种快捷方式吗?
谢谢
编辑:
根据一些人的建议,我会更具体一些:
我的模型是这样的:
class Volume(models.Model):
vid = models.AutoField(primary_key=True)
jid = models.ForeignKey(Journals, db_column='jid', null=True, verbose_name = "Journal")
volumenumber = models.CharField('Volume Number')
date_publication = models.CharField('Date of Publication', max_length=6, blank=True)
class Meta:
db_table = u'volume'
verbose_name = "Volume"
ordering = ['jid', 'volumenumber']
unique_together = ('jid', 'volumenumber')
def __unicode__(self):
return (str(self.jid) + ' - ' + str(self.volumenumber))
Run Code Online (Sandbox Code Playgroud)
我想要的是volumenumber必须是4个字符.
IE如果有人插入'4b'django会出错,因为它需要一个4个字符的字符串.
所以我尝试了
volumenumber = models.CharField('Volume Number', max_length=4, min_length=4)
Run Code Online (Sandbox Code Playgroud)
但它给了我这个错误:
Validating models...
Unhandled exception …Run Code Online (Sandbox Code Playgroud) 我担心这是解决问题的一种混乱方式,但......
假设我想根据某些条件在Python中进行一些导入.
出于这个原因,我想写一个函数:
def conditional_import_modules(test):
if test == 'foo':
import onemodule, anothermodule
elif test == 'bar':
import thirdmodule, and_another_module
else:
import all_the_other_modules
Run Code Online (Sandbox Code Playgroud)
现在我如何才能在全球范围内提供导入的模块?
例如:
conditional_import_modules(test='bar')
thirdmodule.myfunction()
Run Code Online (Sandbox Code Playgroud) 我定义了几个模型:期刊,卷,volume_scanInfo等.
日志可以拥有更多卷,而卷可以拥有更多scanInfo.
我想做的是:
所以我希望有类似的东西:
Journal #1 admin page
[name]
[publisher]
[url]
.....
list of volumes inline
[volume 10] [..(other fields)..] <a href="/link/to/volume/10">Full record</a>
[volume 20] [..(other fields)..] <a href="/link/to/volume/20">Full record</a>
Run Code Online (Sandbox Code Playgroud)
然后
Volume #20 admin page
[volume number]
[..(other fields)...]
......
list of the scan info inline
[scan info 33] [..(other fields)..] <a href="/link/to/scaninfo/33">Full record</a>
[scan info 44] [..(other fields)..] <a href="/link/to/scaninfo/44">Full record</a>
Run Code Online (Sandbox Code Playgroud)
我尝试做的是定义一个模型方法,该方法创建代码并尝试在管理中定义"volume inline"的类中使用它,但它不起作用.
换一种说法
模型"卷"有类似于:
def selflink(self):
return '<a href="/admin/journaldb/volume/%s/">Full record</a>' % self.vid
selflink.allow_tags = True
Run Code Online (Sandbox Code Playgroud)
和 …
我正在尝试编写一个"建议搜索框",我找不到一个解决方案,允许使用javascript保持原始案例突出显示子字符串.
例如,如果我搜索" ca"我在不区分大小写模式下搜索服务器端,我有以下结果:
计算器
日历
逃逸
我想在之前的所有单词中查看搜索字符串,因此结果应为:
Ca lculator
ca lendar
ES CA PE
我尝试使用以下代码:
var reg = new RegExp(querystr, 'gi');
var final_str = 'foo ' + result.replace(reg, '<b>'+querystr+'</b>');
$('#'+id).html(final_str);
Run Code Online (Sandbox Code Playgroud)
但显然这样我放松了原来的情况!
有没有办法解决这个问题?
是否可以使用webpy来提供JSON服务?我构建了我的网站,我需要在JSON中提供一些信息,以便在某些页面上与Javascript进行交互.
我试着在文档中寻找答案,但我找不到任何东西.
谢谢Giovanni
也许这是一个愚蠢的问题,但我无法弄清楚如何在webpy中使用http状态代码.
在文档中,我可以看到主状态代码的类型列表,但是有一个通用函数来设置状态代码吗?
我正在尝试实现一个unAPI服务器,它需要回复一个300 Multiple Choices只有一个标识符的请求.更多信息在这里
谢谢!
编辑:我刚刚发现我可以通过web.ctx这样做来设置它
web.ctx.status = '300 Multiple Choices'
这是最好的解决方案吗?
我正在为Flask Web应用程序编写一些单元测试,并且我正在尝试测试匿名用户和登录用户之间的响应之间的响应差异.
我正在使用Flask-Login扩展来实现用户登录/注销.
显然我能够执行匿名请求,但是如何模拟来自登录用户的请求?
我认为在标题中发送sessioncookie 就足够了,但它不起作用.
headers = Headers({'Cookie':['WEBSITE_ID=%s; Domain=adsabs.harvard.edu; expires=Thu, 25-Apr-2213 16:53:22 GMT; Path=/' % cookie_value,
'WEBSITE_ID=%s; Domain=.adsabs.harvard.edu; expires=Thu, 25-Apr-2213 16:53:22 GMT; Path=/' % cookie_value,
'session="A VERY LONG STRING"; Path=/; HttpOnly',
]})
rv = app.test_client().get('/', headers=headers)
Run Code Online (Sandbox Code Playgroud)
会话cookie值是我从浏览器中的真实登录获得的值.
我错过了什么?
我有一个奇怪的列表,以下列方式构建:
[[name_d, 5], [name_e, 10], [name_a, 5]]
Run Code Online (Sandbox Code Playgroud)
我想先用数字(desc)对它进行排序,然后,如果数字相同,则按名称(asc)排序.所以我想要的结果是:
[[name_e, 10], [name_a, 5], [name_d, 5]]
Run Code Online (Sandbox Code Playgroud)
我试着想一个我可以在sort方法中使用的lambda函数,但我不确定我能做到.
python ×7
django ×3
javascript ×2
web.py ×2
css ×1
django-admin ×1
flask ×1
flask-login ×1
html ×1
http-headers ×1
import ×1
jquery ×1
module ×1
regex ×1
sorting ×1
unit-testing ×1