В моем случае я использовал библиотеку выбора файлов , которая вернула путь к внешнему хранилищу, но началась с /root/
. И даже с разрешением WRITE_EXTERNAL_STORAGE , предоставленным во время выполнения, я все еще получил ошибку EACCES (Permission denied). Поэтому используйте Environment.getExternalStorageDirectory()
, чтобы получить правильный путь к внешнему хранилищу.
Пример: Невозможно записать: /root/storage/emulated/0/newfile.txt
Можно написать: /storage/emulated/0/newfile.txt
boolean externalStorageWritable = isExternalStorageWritable();
File file = new File(filePath);
boolean canWrite = file.canWrite();
boolean isFile = file.isFile();
long usableSpace = file.getUsableSpace();
Log.d(TAG, "externalStorageWritable: " + externalStorageWritable);
Log.d(TAG, "filePath: " + filePath);
Log.d(TAG, "canWrite: " + canWrite);
Log.d(TAG, "isFile: " + isFile);
Log.d(TAG, "usableSpace: " + usableSpace);
/* Checks if external storage is available for read and write */
public boolean isExternalStorageWritable() {
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
return true;
}
return false;
}
Выход 1:
externalStorageWritable: true
filePath: /root/storage/emulated/0/newfile.txt
isFile: false
usableSpace: 0
Выход 2:
externalStorageWritable: true
filePath: /storage/emulated/0/newfile.txt
isFile: true
usableSpace: 1331007488
Вам нужно использовать заглавные буквы: Meta
:
from django.forms import ModelForm ### Double check your import statement
from django.db import models
...
class PostsForm(ModelForm): ### Notice that I have changed the inherited class name
class Meta: ### HERE
model = Posts
fields = '__all__'
Я уже пытался изменить мета на Meta
blockquote>. изменение.
У меня уже есть некоторые объекты в таблице, которые могут быть причиной проблемы?
blockquote>Нет.
Последнее, что нужно проверить, это убедиться, что ваша модель определена над соответствующей формой.