Я решил эту же проблему, переопределив метод validate_unique()
ModelForm:
def validate_unique(self):
exclude = self._get_validation_exclusions()
exclude.remove('problem') # allow checking against the missing attribute
try:
self.instance.validate_unique(exclude=exclude)
except ValidationError, e:
self._update_errors(e.message_dict)
Теперь я всегда убеждаюсь, что атрибут, не предоставленный в форме, все еще доступен, например. instance=Solution(problem=some_problem)
в инициализаторе.
Можно использовать:
git diff <commit>^ <commit> -- <path> | git apply
нотация <commit>^
указывает (первого) родителя <commit>
. Следовательно, эта различная команда выбирает изменения, внесенные в <path>
в фиксации <commit>
.
Примечание, что это ничего еще не будет фиксировать (как git cherry-pick
делает). Таким образом, если Вы хотите это, необходимо будет сделать:
git add <path>
git commit
Ради completness, каковы работы лучше всего для меня:
git show YOURHASH --no-color -- file1.txt file2.txt dir3 dir4 | git apply -3 --index -
git status
Это делает точно, что хочет OP. Это делает разрешение конфликтов при необходимости, так же как merge
делает это. Это делает add
, но не commit
Ваши новые изменения.