嘿朋友我是django模特中的新手.我的问题是,我有五个表属性,如.
Rulno (integer)
From (IpAddressfield )
To(IpAddressfield )
Priority (integer)
Cisp(CharField)
Run Code Online (Sandbox Code Playgroud)
对于单个Ruleno,它们可以是许多优先级和Cisp.因为我正在编写类似的模型.
class Ruleinfo(models.Model):
rule = models.IntegerField(null=False)
From = models.IPAddressField(null=True)
to = models.IPAddressField(null=True)
priority = models.ForeignKey('Priority',related_name = 'priority1')
Cisp =models.ForeignKey('Priority',related_name = 'cisp1')
def __unicode__(self):
return u'%s' %(self.rule)
class Priority(models.Model):
priority = models.IntegerField(null = True)
Ruleno = models.ForeignKey('Ruleinfo')
CISP = models.IntegerField(null = True)
def __unicode__(self):
return u'%s ' % (self.priority)
Run Code Online (Sandbox Code Playgroud)
我想知道,以上型号是否符合我的要求?.
或者如果有替代方案,请告诉我.
如果我有一个主键名称的变量,如何获得给定该变量和主键值的对象?
例如
pk_name = 'username'
pk = 'bob'
class_name.objects.get(pk_name=pk) # this obviously doesn't work because it looks for a field called pk_name
Run Code Online (Sandbox Code Playgroud) 为什么它不起作用?
DESCSPECSOFT = (
(u'99','-'),
(u'Load',u'Load'),
(u'Script',u'Script'),
(u'Load & Script',u'Load & Script'),
)
descSpecSoft = models.CharField(choices=DESCSPECSOFT, default=99,blank = False,null = False)
Run Code Online (Sandbox Code Playgroud)
谢谢
编辑:
用表格代替模型是我的错误
EDIT2:“这些选择是字符串,但默认值为整数。您没有提供有关“不起作用”的含义的任何信息。”
不起作用=模板中不需要的字段
我有以下型号:
class Model(...):
date = DateField()
user = ForeignKey()
data = ForeignKey()
time = IntegerField()
Run Code Online (Sandbox Code Playgroud)
我想为每个用户提供单个数据的时间总和字段,所以我这样做:
Model.objects.filter(date=..., data=...).values('user_id').annotate(time=Sum('time'))
Run Code Online (Sandbox Code Playgroud)
但我收到的结果如下:
[{'user_id':1,'时间':20},{'user_id':1,'时间':10},{'user_id':2,'时间':20}]
所以分组不起作用.我检查了django生成的查询,我不知道为什么django也使用日期和数据进行分组,而不仅仅是用户.我做错了什么或者这只是SQLite问题?
我需要获取属于一个组的所有联系人的总数,但是从名为batch .... 的模型中获取.
这有助于解释
型号(未完整显示)
class Batch(models.Model):
#FK
group = models.ForeignKey(Group, null=True, blank=True)
class Group(models.Model):
name = models.CharField(max_length=60)
class Contact(models.Model):
first_name = models.CharField(max_length=60)
group = models.ForeignKey(Group)
Run Code Online (Sandbox Code Playgroud)
所以批量内我想做这样的事......
def get_contact_count(self):
return len(self.group.contacts)
Run Code Online (Sandbox Code Playgroud)
但是,由于团队之间的关系相反,我正在挣扎.
任何选择?
我正在使用南方的Django Web应用程序进行数据库迁移.我对南方很新,还有django.我尝试使用南方的官方教程,但它失败了一个例外:AttributeError:'Options'对象没有属性'index_together'.我像这样运行南命令:
python manage.py schemamigration southtut --initial
Run Code Online (Sandbox Code Playgroud)
southtut模型是这样的:
class Knight(models.Model):
name = models.CharField(max_length=100)
of_the_round_table = models.BooleanField()
Run Code Online (Sandbox Code Playgroud)
我的项目模型是这样的:
class Author(models.Model):
name = models.CharField(max_length=64)
authorId = models.CharField(max_length=32)
def __unicode__(self):
return self.name
class Meta:
db_table="Author"
class Video(models.Model):
videoId = models.CharField(max_length=32)
videoUrl = models.URLField(max_length=200)
author = models.ForeignKey(Author, null=True, related_name="videos", on_delete=models.SET_NULL)
class Meta:
db_table="Video"
class User(models.Model):
token = models.CharField(max_length=50, null=True)
favs = models.ManyToManyField(Video, related_name="fans", db_table="VideoUserR")
class Meta:
db_table = "User"
Run Code Online (Sandbox Code Playgroud)
我得到的整个错误信息如下:
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv) …Run Code Online (Sandbox Code Playgroud) 我有一个非常正常的模型:
class Nonce(models.Model):
key = models.CharField(_('key'), max_length=36, primary_key=True, blank=False)
token = models.ForeignKey('Token')
date_created = models.DateTimeField(_('date created'), blank=False, default='1970-01-01 00:00:00')
date_consumed = models.DateTimeField(_('date consumed'), blank=True, null=True)
created_by = models.IPAddressField(_('IP address'), blank=False, default='0.0.0.0')
consumed_by = models.ForeignKey('MyUser', blank=True, null=True, on_delete=models.SET_NULL)
def __unicode__(self):
return self.key
Run Code Online (Sandbox Code Playgroud)
其中很多都将被创建,我只需要保留其中一部分实际上被"消耗"(使用)的部分.此外,从模型中不明显,但这些将在1小时后到期.
因此,为了不使用一堆旧的nonce混乱我的数据库,并且为应用程序提供定期(经常)删除过期的数据库的工作,我认为最好将它们存储在RAM中直到它们被消耗(如果有的话) ).
所以,我已经分叉了我的代码,我想我只是替换我的代码,我保存()使用save(commit = False)创建的对象,然后将对象存储到RAM(Memcached).稍后如果消耗了特定的随机数,我将正确地保存(),否则,该对象将过期并通过Memcache清除.
不幸的是,我收到错误:save() got an unexpected keyword argument 'commit'来自Django的行nonce.save(commit = False).为什么?
我正在使用Django 1.4.5和Python 2.7.2.
我有大约6000名用户使用我的Django应用程序.我最近发现了Mailchimp,我想向所有这些用户发送一条消息,告知该网站停用了几天.
而不是复制和粘贴每个电子邮件(约6000).我想知道是否有一个python脚本或者某些内容可以将我应用中每个django用户的所有电子邮件地址写成一个小的.txt.
我该怎么做呢?
默认情况下,通过运行manage.py createsuperuser命令从项目目录可以创建超级用户,但是该.is_superuser标志是默认的django标志,用于区别超级用户或其他用户。
我不想使用它,因为我在整个应用程序中都使用该标志来显示设置菜单。相反,我在中添加了一个字段userprofile models,该字段为.is_primary_user。
有什么方法可以控制它,以便如果我运行createsuperuser注释,它应该.is_primary_user在userprofile模型中将字段更新为“ 1” ?
django ×10
django-models ×10
python ×5
django-admin ×1
django-forms ×1
django-south ×1
email ×1
sqlite ×1