【问题标题】:Why does django/tastypie with postgresql concatenate models_?为什么 django/tastypie 与 postgresql 连接 models_?
【发布时间】:2013-11-25 05:22:14
【问题描述】:

我正在使用带有 django 和tastepie 的postgresql。我已经为某些模型设置了我的模型和资源并使用 mongodb,并且正在尝试将 postgresql 用于关系数据模型。出于某种原因,当对 postgresql 执行查询时,文件夹(模块)会连接到表名和所述模型的所有字段:

"error_message": "relation \"models_member\" does not exist\nLINE 1: ..._member\".\"dob\", \"models_member\".\"last_login\" FROM \"models_me...\n                                                             ^\n",

会员资源:

from api.models.member import Member
from django.conf.urls import url
from api.helper_methods import HelperMethods
from tastypie.resources import ModelResource
import json

class MemberResource(ModelResource):
    class Meta:
        max_limit = 0
        queryset = Member.objects.all().order_by('id')
        allowed_methods = ('get', 'post')
        resource_name = 'members'
        include_resource_uri = False

    def prepend_urls(self):
        return [
            url(r"^(?P<resource_name>%s)/(?P<pk>[\w\d_.-]+)/$" % self._meta.resource_name, self.wrap_view('get_member'), name="api_get_member"),
        ]

    def get_member(self, request, **kwargs):
        member = Member.objects.get(id=kwargs['pk'])
        return self.create_response(request, member)

会员模型:

from tastypie.utils.timezone import now
from django.db import models

class Member(models.Model):
    id = models.IntegerField()
    fname = models.CharField()
    lname = models.CharField()
    addr1 = models.CharField()
    addr2 = models.CharField()
    city = models.CharField()
    state = models.CharField()
    zip = models.CharField()
    country = models.CharField()
    email = models.CharField()
    password = models.CharField()
    sex = models.CharField(max_length=6)
    dob = models.CharField()
    last_login = models.DateTimeField(default=now)

我如何告诉我的资源或...什么...说嘿,不要连接任何东西,只需拨打电话?我迷路了(并且是 pythong/django/tastypie/以上所有内容的新手)。

【问题讨论】:

    标签: python django postgresql tastypie


    【解决方案1】:

    Django 用定义它们的应用程序的名称和下划线作为表名的前缀。您是在 postgres 中手动创建表还是让 django 创建它?您可以通过在模型的元数据中设置 db_table 来告诉 django 表的名称应该是什么。更多信息in the docs

    class Member(models.Model):
        id = models.IntegerField()
        class Meta:
            db_table = 'member'
    

    【讨论】:

      猜你喜欢
      • 2015-02-28
      • 1970-01-01
      • 1970-01-01
      • 2019-06-07
      • 1970-01-01
      • 2014-12-05
      • 2012-01-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多