小编kol*_*ror的帖子

使用文件字段编辑Django模型而不重新上传文件

下面是我项目中django代码的简化版本; 它允许用户上传文件并给它一个标题.此功能非常有效.但是,当用户稍后重新编辑表单时,会重新显示文件和标题,但是当用户提交文件时会清空文件.重新打开以进行编辑的表单的文件字段如下所示:

目前: media_location/uploadedfile.mp3

更改: [选择文件]无文件选择

在我提交之后,它是:

  • 此归档是必需的

[选择文件]无文件选择

如何获取它以便用户不必重新上载文件?对于我来说,一旦提交完成后字段是否只读,或者它是否仍然可编辑并不重要.完成的项目不适用于客户端,只能供一小组可信用户使用,但我仍希望尽可能遵循最佳实践.谢谢你的帮助.

Django代码:

models.py

class Recording(models.Model):
    rec_title=models.CharField(max_length=200,blank=True)
    rec_file = models.FileField(upload_to='recordings')
Run Code Online (Sandbox Code Playgroud)

forms.py

from django import forms 
from songstorage.models import Recording
class RecordingForm(forms.ModelForm):
    rec_file=forms.FileField(label='Upload File')
    rec_title=forms.CharField(label='Recording Title',required=False)       
    class Meta:
        model=Recording
Run Code Online (Sandbox Code Playgroud)

views.py

def addrecordings(request,recordingfile):
    #if there is a recordingfile in the url, the user is editing...
    if recordingfile:
        recording=Recording.objects.get(rec_title=recordingfile)
        recording_form = RecordingForm(instance=recording)
    #...Otherwise a new form is createing a new one
    else:
        recording_form = RecordingForm(request.POST, request.FILES)

    #When the form is submitted, do the following:
    if …
Run Code Online (Sandbox Code Playgroud)

django-forms django-file-upload

9
推荐指数
1
解决办法
1873
查看次数

Java Swing中的IllegalComponentStateException

在做基础java swing程序的时候,我有一个奇怪的错误,我只在我的电脑上(我试过另外两个,一切都很好).

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

public class ModalDialogsTest extends JFrame implements ActionListener{

        private JButton choice;

        ModalDialogsTest(){
                setSize(400,300);
                JPanel panel = new JPanel();
                getContentPane().add(panel);
                panel.setLayout(new BoxLayout(panel,BoxLayout.Y_AXIS));
            choice = new JButton("My button");
            panel.add(choice);
            choice.addActionListener(this);
        }

        public void actionPerformed(ActionEvent event){
                        simpleStringChoiceDialog();
        }

        private void simpleStringChoiceDialog(){
                Object[] possibilities = {"choice 1", "choice 2", "choice 3"};
                String s = (String)JOptionPane.showInputDialog(
                                    this, null, null,
                                    JOptionPane.PLAIN_MESSAGE, null,
                                    possibilities, possibilities[0]);
                System.out.println(s);
        }

        public static void main(String[] args) …
Run Code Online (Sandbox Code Playgroud)

java swing java-7

6
推荐指数
1
解决办法
8715
查看次数

java3d没有在mac山狮上工作


我已经尝试了几个小时来使我的macbook上的java 3d工作,我无法弄清楚它有什么问题...这就是我所做的:
- 我下载了java3d 1.5并替换了/中的原始文件系统/图书馆/的Java /扩展.
- 然后我按照相同(...)/ Java/Extensions文件夹中的教程安装了JOGL.
- 因为它仍然无法工作,我决定尝试原始版本的java3d,所以我重命名了文件.

我正在使用java 1.7.0_07在Mac OS x山狮上工作这是java -version的结果:

    java version "1.7.0_07"
    Java(TM) SE Runtime Environment (build 1.7.0_07-b10)
    Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode)
Run Code Online (Sandbox Code Playgroud)

这是我的Java/extensions文件夹的内容:

    AppleScriptEngine.jar   gluegen-rt.jar          j3dutils.jar.new        libAppleScriptEngine.jnilib libgluegen-rt.jnilib            libnewt.jnilib
    MRJToolkit.jar          j3daudio.jar            jai_codec.jar           libJ3D.jnilib               libjogl_desktop.jnilib          mlibwrapper_jai.jar
    QTJava.zip              j3dcore.jar             jai_core.jar            libJ3DAudio.jnilib          libmlib_jai.jnilib              vecmath.jar
    dns_sd.jar              j3dcore.jar.new         jogl-all.jar            libJ3DUtils.jnilib          libnativewindow_awt.jnilib      vecmath.jar.new
    gluegen-java-src.zip    j3dutils.jar            jogl-java-src.zip       libQTJNative.jnilib         libnativewindow_macosx.jnilib
Run Code Online (Sandbox Code Playgroud)

我可以使用javac编译java 3d代码,但这是我尝试启动时的结果:

    $> java Hello3d
    JavaVM WARNING: JAWT_GetAWT must be called after loading a JVM
    AWT …
Run Code Online (Sandbox Code Playgroud)

java macos java-3d osx-mountain-lion

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

在e2e测试中测试路由Karma时出错

我正在尝试使用Karma在django/angularjs应用程序上进行一些基本的端到端测试(e2e),我得到一个奇怪的错误.

这是我的测试代码:

# testacular-e2e.conf.js

describe('Log in tests', function() {
   it('should show the disconnected home', function() {
      browser().navigateTo('/#');
      expect(browser().location().url()).toBe('/#');
   });
});
Run Code Online (Sandbox Code Playgroud)

当我运行此代码时,我得到以下输出:
[DEPRECATED ERROR - 仅供参考]
$> karma start testacular-e2e.conf.js [2013-04-30 22:19:26.465] [WARN] config - "/"被代理,您应该更改urlRoot以避免冲突[2013-04-30 22:19:26.467] [DEBUG] config - autoWatch设置为false,因为singleRun INFO [karma]:Karma服务器在http开始://local.host:9876 / INFO [launcher]:启动浏览器PhantomJS INFO [PhantomJS 1.9(Mac)]:连接套接字ID cwhp0lnTraNa4ToQ0HkS PhantomJS 1.9(Mac)登录测试应显示断开连接的主页FAILED TypeError:'undefined'不是函数(评估'$ document.injector()')PhantomJS 1.9(Mac):执行1 of 1(1 FAILED)(0.098秒/0.04秒)

任何人都可以帮忙吗?
提前致谢 :)

编辑:这是我的Karma配置文件:

// Karma configuration

// base path, that will be used to resolve files and exclude
basePath …
Run Code Online (Sandbox Code Playgroud)

javascript unit-testing angularjs karma-runner

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