小编man*_*sim的帖子

Django,保存ModelForm

我创建了一个模型Student,它从Django User扩展而来,是另一个模型的外键,而它有一个名为year的整数字段.我想要做的是保存一个有两个字段的表单.一个是课程ID,另一个是整数字段年份.当我点击提交时,我收到错误无法分配"u'2":"Student.course"必须是"课程"实例.

models.py

class Student(models.Model):
    user = models.OneToOneField(User)
    course = models.ForeignKey(Course)
    year = models.IntegerField(validators=[MinValueValidator(1),
                                           MaxValueValidator(7)])
Run Code Online (Sandbox Code Playgroud)

view.py

def step3(request):
    user = request.user
    if request.method == 'POST':
        form = SelectCourseYear(request.POST)
        if form.is_valid():
            form.save()
            return render_to_response("registration/complete.html", RequestContext(request))
    else:
        form = SelectCourseYear()
    return render(request, 'registration/step3.html',)
Run Code Online (Sandbox Code Playgroud)

forms.py

class SelectCourseYear(forms.ModelForm):
    course = forms.CharField()
    year = forms.IntegerField(required=True)

    class Meta:
        model = Student
        fields = ['user', 'course', 'year']
Run Code Online (Sandbox Code Playgroud)

python django django-forms

21
推荐指数
2
解决办法
4万
查看次数

Django,在模板中显示ValidationError

我创建了一个注册应用程序,用户可以在其中注册提供用户名,电子邮件和密码.我所做的是确保电子邮件字段是唯一的(如下面的代码所示).但是,如果用户输入已在使用的电子邮件地址,我无法弄清楚如何显示错误.

视图

from django.shortcuts import render
from django.shortcuts import render_to_response
from django.http import HttpResponseRedirect
from django.core.context_processors import csrf

from forms import RegistrationForm

# Create your views here.
def register_user(request):
    if request.method == 'POST':
        form = RegistrationForm(request.POST)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('../../membership/register_success')
        else:
            return HttpResponseRedirect('../../membership/register_failed')

    args = {}
    args.update(csrf(request))

    args['form'] = RegistrationForm()

    return render(request,'registration/registration_form.html', args)

def register_success(request):
    return render_to_response('registration/registration_success.html')

def register_failed(request):
    return render_to_response('registration/registration_failed.html')
Run Code Online (Sandbox Code Playgroud)

形成

from django import forms
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm
from django.utils.translation import ugettext_lazy as …
Run Code Online (Sandbox Code Playgroud)

forms email django unique validationerror

19
推荐指数
3
解决办法
4万
查看次数

Django编辑用户个人资料

我正在尝试在前面创建一个"编辑配置文件"表单.会发生什么是我的表单(我不是100%肯定)尝试创建用户而不是找到当前用户并更新他的个人资料.所以我认为这就是问题所在.在这里检查了很多问题,但没有一个是清楚的.我正在尝试编辑的字段是电子邮件,名字和姓氏.(另外我想添加uda

forms.py

class UpdateProfile(forms.ModelForm):
    username = forms.CharField(required=True)
    email = forms.EmailField(required=True)
    first_name = forms.CharField(required=False)
    last_name = forms.CharField(required=False)

    class Meta:
        model = User
        fields = ('username', 'email', 'first_name', 'last_name')

    def clean_email(self):
        username = self.cleaned_data.get('username')
        email = self.cleaned_data.get('email')

        if email and User.objects.filter(email=email).exclude(username=username).count():
            raise forms.ValidationError('This email address is already in use. Please supply a different email address.')
        return email

    def save(self, commit=True):
        user = super(RegistrationForm, self).save(commit=False)
        user.email = self.cleaned_data['email']

        if commit:
            user.save()

        return user
Run Code Online (Sandbox Code Playgroud)

views.py

def update_profile(request):
    args = {}

    if request.method == 'POST': …
Run Code Online (Sandbox Code Playgroud)

django profile edit

13
推荐指数
2
解决办法
3万
查看次数

Django,ajax填充模型数据的形式

所以我得到了一份简单的登记表.在这种形式中还有3个字段:

  • 大学
  • 课程

我要做的是过滤数据.因此,当用户选择大学时,课程字段(选择)将显示属于该大学的所有课程.此外,当用户选择课程时,模块字段(选择)将显示属于该课程的所有模块.如果你检查图像,你会发现它有点简单.

我设法显示了所有大学,课程和模块,但由于数据不正确(显示所有条目),这是不实际的.我知道如何过滤查询集,但我不知道如何使用AJAX来做到这一点.尝试了很多教程但找不到东西所以我很抱歉没有发布代码.

如果你能指出我正确的教程,示例或给我一些代码来开始工作......

表单的屏幕截图

更新 我用Del的例子开始研究它.问题是我对AJAX和JS都不擅长.所以我创建了一个从ajax表单接收请求的视图(现在它只返回所有课程,没有过滤).我遇到的问题是,当我选择大学时,course选择变为空.所以我猜它不会从视图中获取数据.如果你能看看..

视图

def ajax_get_courses(request):
    courses = Course.objects.all()
    if request.is_ajax():
        data = serializers.serialize('json', courses)
        return HttpResponse(data,'json')
    else:
        return render_to_response('registration/registration_form_teacher.html', {'courses':courses}, context=RequestContext(request))
Run Code Online (Sandbox Code Playgroud)

JS

$(document).ready(function(){
    $("#university").change(function(){
        var request = $.ajax({
            url: "{% url 'ajax_get_courses' %}",
            type: "POST",
            data: { university: $("#university").val(),
                    csrfmiddlewaretoken: '{{ csrf_token }}'
                  },
            dataType: "html"
        });

        request.done(function(msg) {
                  $("#course").html( msg );
        });

    });

});
Run Code Online (Sandbox Code Playgroud)

更新2

因此,在选择大学之后,选择课程源代码如下:

<select id="course" name="course" class="form-control">[{"pk": 1, "model": "studies.course", "fields": {"attendance": "FT", "name": "Computer Science", "degree": …
Run Code Online (Sandbox Code Playgroud)

python forms django ajax jquery

8
推荐指数
1
解决办法
2404
查看次数

Swift,以编程方式更改UICollectionViewCell和UILabel(在单元格内)的宽度

我已经将单元格的宽度(UICollectionViewCell)设置为等于UICollectionView的宽度,并且我试图使用包含在该单元格内的UILabel完全相同的事情.我认为下面的代码正好解释了我想要实现的目标.所以我在这里阅读了一些问题以及一些教程,但我仍然不确定如何实现这一目标.

在几个问题中它说的是使用collectionViewLayout但我真的在如何在我的代码中使用它.有任何想法吗?谢谢!

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
    var cell = collectionView.dequeueReusableCellWithReuseIdentifier("myCell", forIndexPath: indexPath) as LocationViewCell
    cell.locationLabel.text = "Hello there!"

    // Set cell & label width to 100%
    let collectionViewWidth = self.collectionView.bounds.size.width
    cell.frame.size.width = collectionViewWidth // Works
    cell.locationLabel.frame.size.width = collectionViewWidth // Does NOT 
Run Code Online (Sandbox Code Playgroud)

更新1

所以我添加了以下内容:

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
    // Set cell width to 100%
    let collectionViewWidth = self.collectionView.bounds.size.width
    return CGSize(width: collectionViewWidth, height: 35)
}
Run Code Online (Sandbox Code Playgroud)

发生的情况是,加载视图时,UILabel的宽度仍然很小.如果我转到另一个视图,然后返回,那么它是100%.所以我必须在viewDidLoad() …

ios uicollectionview uicollectionviewcell uicollectionviewlayout swift

8
推荐指数
1
解决办法
3万
查看次数

React Native,NavigatorIOS,undefined不是一个对象(评估'this.props.navigator.push')

我试图NavigatorIOS在我index.ios.js得到的时候使用:

'use strict';

var React = require('react-native');
var Home = require('./App/Components/Home');

var {
  AppRegistry,
  StyleSheet,
  NavigatorIOS
} = React;

var styles = StyleSheet.create({
  container:{
    flex: 1,
    backgroundColor: '#111111'
  }
});

class ExampleApp extends React.Component{
  render() {
    return (
      <NavigatorIOS
        style={styles.container}
        initialRoute={{
          title: 'example',
          component: Home
        }} />
    );
  }
};

AppRegistry.registerComponent('exampleapp', () => ExampleApp);
module.exports = ExampleApp;
Run Code Online (Sandbox Code Playgroud)

然后在Home.js:

'use strict';

var React = require('react-native');
var Park = require('./Park');

var {
  View,
  StyleSheet,
  Text,
  TouchableHighlight …
Run Code Online (Sandbox Code Playgroud)

javascript navigator ios react-native

8
推荐指数
1
解决办法
2万
查看次数

Android上的React Native&okhttp - 设置用户代理

我正在尝试User-Agent在Android上设置React Native.做了一些研究,看起来我应该使用okhttp 拦截器.我发现的一个例子解释了如何做到这一点(链接),但后来我不确定如何注册拦截器.

所以为了设置User-Agent我正在使用这个类:

public class CustomInterceptor implements Interceptor {
    @Override public Response intercept(Interceptor.Chain chain) throws IOException {
      Request originalRequest = chain.request();
      Request requestWithUserAgent = originalRequest.newBuilder()
          .removeHeader("User-Agent")
          .header("User-Agent", "Trevor")
          .build();
      return chain.proceed(requestWithUserAgent);
    }
}
Run Code Online (Sandbox Code Playgroud)

那么剩下的就是注册上面的拦截器,以便它应该在哪里完成?也许在MainActivity.java

OkHttpClient okHttp = new OkHttpClient();
okHttp.interceptors().add(new CustomInterceptor());
Run Code Online (Sandbox Code Playgroud)

构建应用程序时我没有遇到任何错误,所以我认为CustomInterceptor应该没问题 - 只需要让应用程序使用它.

更新:我目前正在尝试注册拦截器MainActivity但它不会接受它:

public class MainActivity extends ReactActivity {

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    OkHttpClient client = new OkHttpClient();
    client.networkInterceptors().add(new …
Run Code Online (Sandbox Code Playgroud)

java android okhttp react-native okhttp3

8
推荐指数
3
解决办法
6043
查看次数

Javascript错误,未捕获TypeError属性'$'的对象[object Object]不是函数

我正在尝试在Joomla模块中插入脚本.该脚本是JS中的百分比加载器.我和另一个js有一些问题,但我终于设法解决了这些问题.

我得到的错误是:

未捕获的TypeError:对象[对象对象]的属性'$'不是函数(匿名函数)

我正在尝试导入Percentage Loader jQuery插件

而js代码是:

$(function() {
  var $topLoader = $("#dttopLoader").percentageLoader({width: 256, height: 256, controllable : true, progress : 0.5, onProgressUpdate : function(val) {
      $topLoader.setValue(Math.round(val * 100.0));
    }});

  var topLoaderRunning = false;
  $("#dtanimateButton").click(function() {
    if (topLoaderRunning) {
      return;
    }
    topLoaderRunning = true;
    $topLoader.setProgress(0);
    $topLoader.setValue('0kb');
    var kb = 0;
    var totalKb = 999;

    var animateFunc = function() {
      kb += 17;
      $topLoader.setProgress(kb / totalKb);
      $topLoader.setValue(kb.toString() + 'kb');

      if (kb < totalKb) {
        setTimeout(animateFunc, 25);
      } else {
        topLoaderRunning …
Run Code Online (Sandbox Code Playgroud)

javascript jquery joomla types

7
推荐指数
1
解决办法
3869
查看次数

Angular JS:输入框失去了对按键的关注

我用来填充数据的模拟数据是

"StudentDetails":
[
     {
        "name": "name1",
        "code":"code1",
            "fields": {
            "username": "username1",
            "password": "sample",
            "key": 4513345667878
        }
    },
    {
        "name": "name2",
        "code":"code2",
        "fields": {
            "username": "username2",
            "secretkey": 1213145
        }
    }
]
Run Code Online (Sandbox Code Playgroud)

我使用以下模板代码填充它

<div ng-repeat="item in StudentDetails">
<div ng-repeat="(key,value) in StudentDetails.fields">
<div></div>
<div><input type="text" ng-model="StudentDetails.fields[key]"/></div></div>

</div>
Run Code Online (Sandbox Code Playgroud)

字段中的参数会针对每个对象进行更改.这里的问题是输入框中的单个按键,输入框失去焦点.我不得不反复点击输入框内部以输入数据.如何在没有框失去焦点的情况下更改输入框中的值.我使用了"按键跟踪"...并尝试在StackOverflow中发布类似问题的各种答案,但这没有帮助请帮助这个场景.. !!

angularjs

7
推荐指数
1
解决办法
4157
查看次数

Bootstrap Datepicker滚动问题

在我的网站上遇到一个奇怪的滚动问题,其中bootstrap datepicker日历不会与其附加的输入框保持一致.我试着用jsfiddle重新创造它.(在框中滚动鼠标滚轮,然后点击输入框查看日历.)我知道它不会出现在前面,但这不是问题,它只是为了娱乐目的.你会注意到它没有正确地滚动输入框,这是我试图解决的问题.

我原来的代码是:

 $(".datepicker-input").each(function(){ $(this).datepicker();});
Run Code Online (Sandbox Code Playgroud)

HTML:

<input type="text" class="datepicker-input" />
Run Code Online (Sandbox Code Playgroud)

脚本:

    var datePicker = $().datepicker({});
    var t;
    $(window).on('DOMMouseScroll mousewheel scroll', function() {
        window.clearTimeout(t);
        t = window.setTimeout(function() {
            $('.datepicker-input').datepicker('place');
        }, 100);
    });
Run Code Online (Sandbox Code Playgroud)

CSS:

html,body {
    overflow-x: hidden;
    position: relative;
    min-height: 100%;
}

.datepicker-input {
    margin-top: 250px;
    margin-left: 100px;
}

.dropdown-menu {
    font-size: 13px;
    margin-left: 20px;
}
Run Code Online (Sandbox Code Playgroud)

链接到jsfiddle:http://jsfiddle.net/8C6jT/1/(感谢A. Wolff)

编辑:

此功能是Chrome和IE中的一些有效功能..如果你滚动得太快但它对Firefox不起作用,它仍会导致日历从输入框移开.

html css jquery datepicker twitter-bootstrap

5
推荐指数
1
解决办法
7702
查看次数