我已经关闭了快捷方式蓝图(/ model/findAll无法工作),现在我想使用REST搜索模型,但我没有找到任何内容,是否有任何文档或我是否必须为此编写自己的视图?
谢谢
我正在使用Django Rest Framework序列化外键集,我有以下模型:
class Transaction(models.Model):
...
class TransactionStatus(models.Model):
transaction = models.ForeignKey(Transaction)
...
Run Code Online (Sandbox Code Playgroud)
我有这两个模型的序列化器,其中一个看起来像这样:
class TransactionSerializer(serializers.ModelSerializer):
transactionstatus_set = TransactionStatusSerializer(many=True, read_only=True)
class Meta:
model = Transaction
depth = 1
fields = ('id', 'transactionstatus_set')
Run Code Online (Sandbox Code Playgroud)
我想在这里有一个来自后面引用的_set queryset的事务状态列表...但是,事务处理集在API中看起来似乎很尴尬.
我有以下型号:
class VotingRound(models.Model):
pass # here are some unimportant fields
class Vote(models.Model):
voting_round = models.ForeignKey(VotingRound)
vote = models.CharField(choices=...)
Run Code Online (Sandbox Code Playgroud)
现在我有VotingRound的实例,我想知道每个值代表了多少次.这很容易通过collections.Counter完成:
>>> Counter(voting_round_instance.vote_set.values_list('vote', flat=True))
Counter({u'decline': 8, u'neutral': 5, u'approve': 4})
Run Code Online (Sandbox Code Playgroud)
现在我想知道是否有办法用Django聚合技术做到这一点....
我找到了这个模块,但在使用之前我想知道是否有本地方法来做到这一点.
我是 geodjango 的新手,我有以下设置:
\n\nDATABASES = {\n "default" : {\n \'ENGINE\': \'django.contrib.gis.db.backends.postgis\', # Add \'postgresql_psycopg2\', \'postgresql\', \'mysql\', \'sqlite3\' or \'oracle\'.\n \'NAME\': \'dbname\', # Or path to database file if using sqlite3.\n \'USER\': \'django\', # Not used with sqlite3.\n \'PASSWORD\': \'somepass\', # Not used with sqlite3.\n \'HOST\': \'127.0.0.1\', # Set to empty string for localhost. Not used with sqlite3.\n \'PORT\': \'\', # Set to empty string for default. Not used with sqlite3.\n }\n}\n\nINSTALLED_APPS = (\n \'django.contrib.auth\',\n \'django.contrib.contenttypes\',\n \'django.contrib.sessions\',\n \'django.contrib.sites\',\n \'django.contrib.messages\',\n \'django.contrib.staticfiles\',\n …Run Code Online (Sandbox Code Playgroud) 我有一个以前项目的数据库,我想在另一个项目中使用,出于安全原因,我需要更新其中一个表的ID.问题是该表被其他表中的外键大量引用:
CREATE TABLE "table_table" (
"id" serial NOT NULL PRIMARY KEY,
"created" timestamp with time zone NOT NULL,
);
CREATE TABLE "table_photo" (
"id" serial NOT NULL PRIMARY KEY,
"table_id" integer NOT NULL REFERENCES "table_table" ("id") DEFERRABLE INITIALLY DEFERRED,
);
Run Code Online (Sandbox Code Playgroud)
现在,如果我更改table_table上的id,则table_photo的引用将不起作用.我可能会使用这样的东西来改变ID:
UPDATE table_table SET id = id + 15613;
Run Code Online (Sandbox Code Playgroud)
我已经阅读过某些地方,我可以使用ON UPDATE CASCADE约束来执行此操作,但我不太确定如何使用它.
顺便说一句:我正在使用Django ORM.
我正在使用httpie来玩我在django 1.7和django rest framework 2.4中编写的api.今天我试图删除一个对象:
$ http DELETE :8000/api/items/8/ --verbose
DELETE /api/items/8/ HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate, compress
Content-Length: 0
Host: 127.0.0.1:8000
User-Agent: HTTPie/0.8.0
HTTP/1.0 204 NO CONTENT
Allow: GET, PUT, PATCH, DELETE, HEAD, OPTIONS
Content-Language: cs
Content-Length: 0
Date: Wed, 07 Jan 2015 21:47:06 GMT
Server: WSGIServer/0.1 Python/2.7.6
Vary: Accept, Accept-Language, Cookie
Run Code Online (Sandbox Code Playgroud)
哪个成功即使它应该需要CSRF令牌.当我尝试使用以下代码从Chrome中删除对象时:
$.ajax({
type: "DELETE",
url: "http://127.0.0.1:8000/api/items/6/"
});
Run Code Online (Sandbox Code Playgroud)
我收到以下请求:
DELETE /api/items/6/ HTTP/1.1
Host: 127.0.0.1:8000
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Accept: */*
Origin: http://127.0.0.1:8000
X-Requested-With: …Run Code Online (Sandbox Code Playgroud) django ×5
postgresql ×2
python ×2
rest ×2
database ×1
django-forms ×1
django-views ×1
geodjango ×1
node.js ×1
postgis ×1
sails.js ×1
sql ×1