Python Django双工作台接头
我使用了Python Django双工作台接头,python,sql-server,django,Python,Sql Server,Django,我使用了$python manage.py inspectdb从MSSQL中获取以下表格,Book表格可能有很多图片,因此我检查了它的forignkey的Mpeg表格 在foreignkey=book\u id model.py class Book(models.Model): book_id = models.AutoField(db_column='book_id', primary_key=True) # Field name made lowercase. book_
$python manage.py inspectdb
从MSSQL中获取以下表格,Book表格可能有很多图片,因此我检查了它的forignkey的Mpeg表格
在foreignkey=book\u id
model.py
class Book(models.Model):
book_id = models.AutoField(db_column='book_id', primary_key=True) # Field name made lowercase.
book_name = models.CharField(db_column='book_name', max_length=100, blank=True, null=True) # Field name made lowercase.
media = models.CharField(max_length=200, blank=True, null=True)
class Meta:
db_table = 'book'
class Mpeg(models.Model):
picture_id = models.AutoField(primary_key=True)
picture_name = models.CharField(max_length=50)
picture_type = models.CharField(max_length=50)
picture_url = models.CharField(max_length=100)
foreignkey = models.IntegerField(db_column='foreignKey') # Field name made lowercase.
class Meta:
db_table = 'mpeg'
def map_player_post(request, book_id):
book = models.Book.objects.get(book_id = book_id)
mpeg = models.Mpeg.objects.all() #Tried filter but failed
template = get_template('map.html')
request_context = RequestContext(request)
request_context.push(locals())
if book != None:
html = template.render(request_context)
return HttpResponse(html)
视图.py
class Book(models.Model):
book_id = models.AutoField(db_column='book_id', primary_key=True) # Field name made lowercase.
book_name = models.CharField(db_column='book_name', max_length=100, blank=True, null=True) # Field name made lowercase.
media = models.CharField(max_length=200, blank=True, null=True)
class Meta:
db_table = 'book'
class Mpeg(models.Model):
picture_id = models.AutoField(primary_key=True)
picture_name = models.CharField(max_length=50)
picture_type = models.CharField(max_length=50)
picture_url = models.CharField(max_length=100)
foreignkey = models.IntegerField(db_column='foreignKey') # Field name made lowercase.
class Meta:
db_table = 'mpeg'
def map_player_post(request, book_id):
book = models.Book.objects.get(book_id = book_id)
mpeg = models.Mpeg.objects.all() #Tried filter but failed
template = get_template('map.html')
request_context = RequestContext(request)
request_context.push(locals())
if book != None:
html = template.render(request_context)
return HttpResponse(html)
模板
<h4>{{book.mpeg.count}}</h4> //get the book count
{{book.mpeg.count}}//获取图书计数
书桌上可能有许多图片
为此,您必须在Mpeg
模型中使用一个,如下所示:
class Mpeg(models.Model):
picture_id = models.AutoField(primary_key=True)
picture_name = models.CharField(max_length=50)
picture_type = models.CharField(max_length=50)
picture_url = models.CharField(max_length=100)
book = models.ForeignKey('Book', models.CASCADE)
# remove the foreignkey = models.IntegerField(db_column='foreignKey')
class Meta:
db_table = 'mpeg'
book = Book.objects.get(book_id=book_id)
mpeg = Mpeg.objects.filter(book=book)
book = Book.objects.get(id=book_id)
mpeg = Mpeg.objects.filter(book=book)
现在运行/manage.py makemigrations
和/manage.py migrate
,然后(当然,在填充一些数据之后)可以执行如下查询:
class Mpeg(models.Model):
picture_id = models.AutoField(primary_key=True)
picture_name = models.CharField(max_length=50)
picture_type = models.CharField(max_length=50)
picture_url = models.CharField(max_length=100)
book = models.ForeignKey('Book', models.CASCADE)
# remove the foreignkey = models.IntegerField(db_column='foreignKey')
class Meta:
db_table = 'mpeg'
book = Book.objects.get(book_id=book_id)
mpeg = Mpeg.objects.filter(book=book)
book = Book.objects.get(id=book_id)
mpeg = Mpeg.objects.filter(book=book)
[奖金]:您可以删除图片id
和图书id
字段,因为Django将自动为您添加id
。然后你可以像这样重写上面的表达式:
class Mpeg(models.Model):
picture_id = models.AutoField(primary_key=True)
picture_name = models.CharField(max_length=50)
picture_type = models.CharField(max_length=50)
picture_url = models.CharField(max_length=100)
book = models.ForeignKey('Book', models.CASCADE)
# remove the foreignkey = models.IntegerField(db_column='foreignKey')
class Meta:
db_table = 'mpeg'
book = Book.objects.get(book_id=book_id)
mpeg = Mpeg.objects.filter(book=book)
book = Book.objects.get(id=book_id)
mpeg = Mpeg.objects.filter(book=book)
class
是python中的保留关键字!!尝试为变量使用另一个名称。好的,我举了一个错误的示例。我改名字。