我正在使用django-rest-framework来构建后端.我的列表运行正常,但(使用django-rest-framework管理屏幕)我不能通过使用外键对象的Id字段来创建对象.我希望我的配置不正确,但我愿意写一些代码,如果我必须:)我正在从.NET和Java背景学习django/python,可能已成为这个新栈的宠坏.
编辑:我试图不使用两个不同的模型类 - 我不应该对吗?
提前致谢.
来自Chrome - 请求的关键位
Request URL:http://127.0.0.1:8000/rest/favorite_industries/
Request Method:POST
_content_type:application/json
_content:{
"user_id": 804 ,"industry_id": 20 }
Run Code Online (Sandbox Code Playgroud)
响应
HTTP 400 BAD REQUEST
Vary: Accept
Content-Type: text/html; charset=utf-8
Allow: GET, POST, HEAD, OPTIONS
{
"user": [
"This field is required."
]
}
Run Code Online (Sandbox Code Playgroud)
啊.以下是django的关键类:
class FavoriteIndustry(models.Model):
id = models.AutoField(primary_key=True)
user = models.ForeignKey(User, related_name='favorite_industries')
industry = models.ForeignKey(Industry)
class Meta:
db_table = 'favorites_mas_industry'
class FavoriteIndustrySerializer(WithPkMixin, serializers.HyperlinkedModelSerializer):
class Meta:
model = myModels.FavoriteIndustry
fields = (
'id'
, 'user'
, 'industry'
)
Run Code Online (Sandbox Code Playgroud)
编辑添加视图集:
class …Run Code Online (Sandbox Code Playgroud) 我有一个简单的AngularJS/FabricJs应用程序,目的是允许在上载之前移动/重新调整图像大小.基本上有四个步骤:
1) I present a form with a canvas, and a rectangle inside of form to represent a clip area
2) browse for a local file
3) add it to the canvas
4) and have a button to capture the clip area inside of the canvas
Run Code Online (Sandbox Code Playgroud)
当我将代码从直接嵌入的表单移动到坐在angular指令后面时,会出现问题.一旦我将表单移动到指令中弹出一个问题,图像就被加载并添加到画布而没有(任何明显的)问题.但是,一旦您单击画布上的任何位置(例如,尝试移动图像),您添加的图像就不再出现在画布上(尽管检查fabricJs Canvas对象仍然将其显示为其对象数组内部).
JS App和助手:
var myApp = angular.module('myApp', [])
// helper function to bind tot he on change of a input/file object (angularJs workaround)
var invokeImageChange = function(that) {
angular.element(that).scope().imageChange(that)
angular.element(that).scope().$digest();
}
Run Code Online (Sandbox Code Playgroud)
控制器:
var …Run Code Online (Sandbox Code Playgroud) 我想在我的网站上设计一个设计,页脚总是出现在屏幕上,并浮动.当用户向下滚动时,页脚随之移动.我没有把自己的想法卖给自己 - 但这就是我认为我想要链接到公司的东西的地方.如果这是一个坏主意,请让我知道这些限制(在移动设备上可能?).
我已经看到设计和示例在页面底部有页脚,但如果这是"低于折叠",用户需要向下滚动才能看到它.不好.
有人可以向我提供有关如何实现这一目标的基础知识吗?
提前致谢.
结合leppies反馈它编译 - 但IMO的一些缺点我希望编译器强制每个子类定义自己的Uri属性.代码现在是:
[<AbstractClass>]
type UriUserControl() =
inherit UserControl()
interface IUriProvider with
member this.Uri with get() = null
Run Code Online (Sandbox Code Playgroud)
有趣的是,我从上面定义了哪些内容并没有显示公共Uri属性:
type Page2() as this =
inherit UriUserControl()
let uriStr = "/FSSilverlightApp;component/Page2.xaml"
let mutable uri = new System.Uri(uriStr, System.UriKind.Relative)
do
Application.LoadComponent(this, uri)
member public this.Uri with get () = uri
Run Code Online (Sandbox Code Playgroud)
我想定义一个继承自UserControl和我自己的接口IUriProvider的抽象类,但是没有实现它.目标是能够定义实现UserControl的页面(用于silverlight),但也提供他们自己的Uri(然后将它们粘贴在列表/数组中并将它们作为集合处理:
type IUriProvider =
interface
abstract member uriString: String ;
abstract member Uri : unit -> System.Uri ;
end
[<AbstractClass>]
type UriUserControl() as this =
inherit IUriProvider with
abstract member uriString: String …Run Code Online (Sandbox Code Playgroud) 我很抱歉询问可能是一个补救问题,但在学习rails时我试图按照本教程中的注释说明:
http://guides.rubyonrails.org/getting_started.html
我昨晚在本教程中发布了一个类似的问题并得到了一个迅速的回复,这对我帮助很大,所以我希望也能如此.先感谢您.
第5.14节:删除帖子
我被指示向index.html.erb页面添加删除链接
<h1>Listing Posts</h1>
<table>
<tr>
<th>Title</th>
<th>Text</th>
<th></th>
<th></th>
<th></th>
</tr>
<% @posts.each do |post| %>
<tr>
<td><%= post.title %></td>
<td><%= post.text %></td>
<td><%= link_to 'Show', post_path %></td>
<td><%= link_to 'Edit', edit_post_path(post) %></td>
<td><%= link_to 'Destroy', post_path(post),
method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
</table>
Run Code Online (Sandbox Code Playgroud)
产生:
<td><a data-confirm="Are you sure?" data-method="delete" href="/posts/1" rel="nofollow">Destroy</a></td>
Run Code Online (Sandbox Code Playgroud)
对我来说看起来不错,但是当我点击链接时,我既没有得到确认也没有指向删除操作.它会生成此HTTP操作
Request URL:http://localhost:3000/posts/1
Request Method:GET
Status Code:200 OK
Run Code Online (Sandbox Code Playgroud)
Rails:4,Ruby:2,64位windows 8,chrome:版本28.0.1500.72 m
再次感谢你
添加application.html.erb
<!DOCTYPE html>
<html> …Run Code Online (Sandbox Code Playgroud) 我发布了这样的休息请求:
{title:some title, recurring:true, day:Wednesday, time:12:30, description:some text}
Run Code Online (Sandbox Code Playgroud)
我没有传递日期,因为事件是重复出现的,值应为空.服务器响应是:
{"date": ["This field cannot be blank."]}
Run Code Online (Sandbox Code Playgroud)
这是相关的python代码:
class Event(models.Model):
title = models.CharField(max_length=200)
recurring = models.BooleanField()
day = models.CharField(max_length=20, blank=True)
date = models.DateField(null=True)
time = models.TimeField()
description = models.CharField(max_length=500)
venue = models.CharField(max_length=200, blank=True)
venueAddress = models.CharField(max_length=200, blank=True)
venueCity = models.CharField(max_length=200, blank=True)
class EventSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Event
class EventViewSet(viewsets.ModelViewSet):
queryset = Event.objects.all()
serializer_class = EventSerializer
Run Code Online (Sandbox Code Playgroud)
我不完全确定消息从哪里回来.我的模型定义正确吗?我的序列化程序需要额外的工作吗?
有没有一种简单的方法来确定值数组的局部最小值和最大值.例如
Element Value Note
1 1
2 3
3 5
4 6
5 7 max
5 5
6 4 min
7 6
8 9
9 10 max
10 8
11 7
12 5 min
13 10
Run Code Online (Sandbox Code Playgroud)
所以定义的数组如下:
let arr = [|1;3;5;6;7;5;4;6;9;10;8;7;5;10|]
Run Code Online (Sandbox Code Playgroud)
会识别
mins = [|4;5|]
Run Code Online (Sandbox Code Playgroud)
和
maxs = [|7;10|]
Run Code Online (Sandbox Code Playgroud)
它可以是列表或序列以及数组.两个问题
谢谢
我有一个模型,本质上是一个包含四个查找表的单个表.其中一个查找表是指定类型.根据类型(其中有四种),对字段的要求会发生变化.例如,如果类型为"Survey",则字段number_of_unique_contacts是必需的,但不适用于任何其他类型.
我考虑使用基于建模继承的多表和数据库模式.但这没有意义,因为只有四种类型,并且只有6个字段作为"上下文需要"依赖于类型.话虽这么说,我会对Django中的多个模型开放,但我更喜欢REST框架只呈现一个URI(每个TYPE不是一个).
手头的问题是:在POST/PUT请求上验证模型的最佳方法是什么?我最好选择另一个数据库模式(如上所述,我认为我对我感觉合适)?应该重组我的python模型(同样是一个有四个查找的主类)?
我是Django和python的新手,所以请保持温和(.NET/Java背景).并提前谢谢你
我认为相关的代码(老实说,代码可能不重要,因为这更像是一个设计问题,但我总觉得奇怪的发布没有代码 - 至少是为了上下文)
class MySerializer(serializers.ModelSerializer):
proposal_side = serializers.SlugRelatedField(many=False, read_only=False, slug_field='proposal_side')
my_proposal_type = serializers.SlugRelatedField(many=False, read_only=False, slug_field='proposal_type')
my_proposal_delivery_type = serializers.SlugRelatedField(many=False, read_only=False, slug_field='delivery_type')
my_survey_method = serializers.SlugRelatedField(many=False, read_only=False, slug_field='method')
class Meta:
model = diliModels.Proposal
fields = (
'id'
,'my_proposal_side'
,'my_proposal_type'
,'number_of_participants'
,'cost_per_participants'
,'minimum_dollar_commitment'
,'commercial_terms'
,'is_publicly_visible'
,'is_anonymous'
,'is_republish'
,'name'
,'my_delivery_type'
,'my_survey_method'
,'number_of_unique_contacts'
,'availability_start'
,'availability_end'
,'location_country'
,'location_city'
,'location_state'
,'description'
,'desired_meetings'
)
class MyViewSet(viewsets.ModelViewSet):
paginate_by = 100
queryset = myModels\
.MyProposal\
.objects\
.prefetch_related('blah')
print 'SQL::MyViewSet: ' + str(queryset.query)
serializer_class = serializers.MySerializer
Run Code Online (Sandbox Code Playgroud) 我收到连接重置错误。我相当确定这是来自长时间运行的 REST 请求,即超时。
{ [Error: socket hang up] code: 'ECONNRESET' }
Run Code Online (Sandbox Code Playgroud)
有没有办法在 Koa 中禁用请求超时,以便我可以测试这个假设?
我正在运行节点版本 5.x、koa 0.10、centOs 6