我刚刚在ASP.Net MVC中使用LINQ to Entities启动了一个项目,我想知道是否有一个很好的,干净的方法来定义模型,为我在数据库中创建适当的表.我最熟悉Django(就MVC框架而言)并且正在寻找.Net等价物,models.py因此我可以将所有内容都版本化.有任何想法吗?如果它有某种形式的模式迁移,la django-evolution等,那就更好了.
我遇到了Django 1.2.4的问题.
这是一个模型:
class Foo(models.Model):
# ...
ftw = models.CharField(blank=True)
bar = models.ForeignKey(Bar, blank=True)
Run Code Online (Sandbox Code Playgroud)
刷新数据库后,我使用shell:
Python 2.6.6 (r266:84292, Sep 15 2010, 15:52:39)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from apps.foo.models import Foo
>>> Foo.objects.all()
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/usr/local/lib/python2.6/dist-packages/django/db/models/query.py", line 67, in __repr__
data = list(self[:REPR_OUTPUT_SIZE + 1])
File "/usr/local/lib/python2.6/dist-packages/django/db/models/query.py", line 82, in __len__
self._result_cache.extend(list(self._iter))
File "/usr/local/lib/python2.6/dist-packages/django/db/models/query.py", line 271, in iterator
for row …Run Code Online (Sandbox Code Playgroud) 我有评论和文章,都是可以投票的.
所以,基本上我有三个实体Article,Comment和Vote.
在一些阅读后在Doctrine2单表继承参考手册,似乎它就是我所需要的,因为我Vote仍然是相同的过度Article或Comment.
在ORM视图中,以下是我查看Vote表格的方式:
id | resource_id | resource_type | weight |
我想resource_type应该是"鉴别器"列,但我真的不明白如何在我的实体中实现它.
我想要做的是避免必须为我的每个实体投票表,因为投票实体对于两者都保持相同,除了"resource_type",所以我试图在Doctrine2中找到一种方式能够只有一个Vote实体可以使用.
如何使用Django将数据库列加载到列表中?我的数据库中有一个各种名称的"名称"列,我希望能够将所有这些名称(按ID排序)加载到列表中.这样我就可以遍历该列表并打印名称,如下所示:
for name in name_list:
print name
Run Code Online (Sandbox Code Playgroud)
我已经彻底搜索了这个,我找不到任何东西.这应该是这么简单,它只相当于SQL的"SELECT列FROM表"
class chat_messages(models.Model):
name = models.CharField(max_length=32)
Run Code Online (Sandbox Code Playgroud) 似乎无法看到我在哪里出错了.原谅我,因为我是新手.我试图在模型中显示10个最新的对象.
这是我用来将所有这些对象放在列表中的循环:
# put the top 10 newest Recipe objects in a list
entries_list = []
all_recipes = Recipes.objects.annotate(Count('id'))
newest_recipe_index = len(all_recipes)
index = 0
while index < 10:
try:
x = Recipes.objects.get(id=newest_recipe_index)
entries_list.append(x)
newest_recipe_index = newest_recipe_index - 1
index = index + 1
except:
index = index + 1
pass
Run Code Online (Sandbox Code Playgroud)
然后我将其渲染到页面,如下所示:
c = RequestContext(request, {'form' : form, 'entries_list' : entries_list})
return render_to_response("main.html", c)
Run Code Online (Sandbox Code Playgroud)
这是我的HTML:
{% for entries in entries_list %}
<i><b>Name:</i></b> {{ entries_list.name }}<br>
<img src="/images{{ entries_list.picture }}" height="300" …Run Code Online (Sandbox Code Playgroud) 快速(可能是愚蠢的)问题.这是我网站的流程:用户登录并重定向到自定义管理页面.在此管理页面上,他们可以制作"个人资料".我想将他们创建的配置文件与其用户数据相关联,以便1个用户关联到1个配置文件.
由于某种原因,以下是行不通的(只是试图联系
UserAdmin.Models
from django.db import models
from django.contrib.auth.models import User
class Profile(models.Model):
username = models.ForeignKey(User)
firstname = models.CharField(max_length=200)
lastname = models.CharField(max_length=200)
email = models.EmailField(max_length=200)
def __unicode__(self):
return self.username
Run Code Online (Sandbox Code Playgroud)
UserAdmin.Views
def createprofile(request):
user = User.objects.get(id=1)
profile = Profile(username=user, firstname='Joe', lastname='Soe', email='Joe@Soe.com')
profile.save()
Run Code Online (Sandbox Code Playgroud)
我一直得到:table useradmin_profile没有名为username_id的列
有任何想法吗?赞赏.
编辑:
删除我的数据库并运行一个新的syncdb,更改为username = models.OneToOneField(User).现在我得到了无法分配"u'superuser":"Profile.username"必须是"用户"实例.
我有一个只有一个字段的模型。姓名。
class City(models.Model): <br>
name = models.CharField(max_length=30)
Run Code Online (Sandbox Code Playgroud)
Djangoid自己设置,所以我最终得到了SQL 中的id一个description字段。
但该id字段始终递增 1。我想从 1000 开始,然后递增 1。
有没有办法在 Django 中做到这一点?
在学习Django做网络编程的同时,我遇到了这个问题.我搜索谷歌和Django的官方网站biut找不到任何答案.请帮我.
系统环境:
运行时:Django的开发服务器
我有一个包含ManyToMany字段的模型.当我通过django的管理面板设置值时,一切顺利.以下代码是我的所有型号:
class Posts(models.Model):
post_authorid = models.IntegerField(verbose_name=u'Authorid')
post_date = models.DateTimeField(auto_now_add=True,verbose_name=u'PostDate')
post_date_modified = models.DateTimeField(auto_now=True,verbose_name=u'LastModifiedTime')
post_content = models.TextField(verbose_name=u'Content')
post_title = models.CharField(max_length=50,verbose_name=u'Title')
post_name = models.CharField(max_length=50,blank=True,verbose_name=u'ShortName')
post_cover = models.CharField(max_length=200,verbose_name=u'CoverUrl')
post_introduction = models.CharField(max_length=500,blank=True,verbose_name=u'introduction')
post_status = models.ForeignKey(Status,verbose_name=u'status')
comment_status = models.BooleanField(verbose_name=u'show_comments')
post_password = models.CharField(max_length=20,blank=True,verbose_name=u'passwd')
post_tagid = models.ManyToManyField(Tags,verbose_name=u'tag')
post_threadtypeid = models.ForeignKey(ThreadTypes,verbose_name=u'ThreadType')
post_comment_conut = models.IntegerField(verbose_name=u'CommentsCount')
post_comments = models.ManyToManyField(Comments,blank=True,verbose_name=u'Comment')
def __unicode__(self):
return u"%s %s %s" % (self.id,self.post_title,self.post_date)
class Meta:
ordering = ['post_date']
class Tags(models.Model):
tagname = models.CharField(max_length=20,verbose_name=u'????')
def __unicode__(self): …Run Code Online (Sandbox Code Playgroud) 我有一个模型Project,我得到了以下instr的属性
attr = getattr(project, 'id', None)
Run Code Online (Sandbox Code Playgroud)
project是实例,id是字段,None是默认的返回类型.我的问题是如果我想用这个获得FK键怎么办?
project.customer.name
如何获得具有上述条件的客户名称?
if callable(attr):
context[node][field] = '%s' % attr()
Run Code Online (Sandbox Code Playgroud)
context = {'project': {}}
fields = ('id', 'name', 'category', 'created_by', customer)
for field in fields:
attr = getattr(project, field, None)
if callable(attr):
context['project'][field] = '%s' % attr()
else:
context['project'][field] = attr
Run Code Online (Sandbox Code Playgroud)
我需要在这里调整客户对象.我可以给类似customer__name或customer.name在我的领域,并逐渐加入顾客的名字,但我不知道.
例如,我有2个模型,课程和视频.课程有很多视频.
// course.js
'use strict';
module.exports = (sequelize, DataTypes) => {
const Course = sequelize.define('Course', {
title: DataTypes.STRING,
description: DataTypes.STRING
});
Course.associate = models => {
Course.hasMany(models.Video);
};
return Course;
};
// video.js
'use strict';
module.exports = (sequelize, DataTypes) => {
const Video = sequelize.define('Video', {
title: DataTypes.STRING,
description: DataTypes.STRING,
videoId: DataTypes.STRING
});
Video.associate = models => {
Video.belongsTo(models.Course, {
onDelete: "CASCADE",
foreignKey: {
allowNull: false
}
})
};
return Video;
};
Run Code Online (Sandbox Code Playgroud)
我想用包含视频的课程创建种子.我该怎么做?我不知道如何用包含的视频创建种子.
models ×10
python ×7
django ×6
database ×3
ado.net ×1
asp.net-mvc ×1
callable ×1
doctrine-orm ×1
getattr ×1
javascript ×1
linq ×1
mysql ×1
node.js ×1
php ×1
seeding ×1
sequelize.js ×1
templates ×1